コード例 #1
0
        public void OnActionExecuting(ActionExecutingContext filterContext)
        {
            var settings = _services.WorkContext.CurrentSite.As<RedirectSettingsPart>();

            if (settings == null || !settings.Enabled) {
                return;
            }

            try {
                var interpretter = new RulesInterpreter(_clock);
                filterContext.Result = interpretter.Interpret(filterContext.HttpContext, settings.Rules) ?? filterContext.Result;
            }
            catch(RuleEvaluationException e) {
                Logger.Error("Rewrite rule evaluation failed for url {0} on rule {1} with message: ", e.Url, e.Rule, e.Message);
            }
        }
コード例 #2
0
        public ActionResult Simulate(string url, string applicationPath, string rule)
        {
            _context.SetupGet(c => c.Request.Url).Returns(new Uri(url));
            _context.SetupGet(c => c.Request.ApplicationPath).Returns(applicationPath);

            var headers = new NameValueCollection();

            headers["Host"] = new Uri(url).Host;

            _context.SetupGet(c => c.Request.UserAgent).Returns(HttpContext.Current.Request.UserAgent);
            _context.SetupGet(c => c.Request.UrlReferrer).Returns(HttpContext.Current.Request.UrlReferrer);
            _context.SetupGet(c => c.Request.Headers).Returns(headers);
            _context.SetupGet(c => c.Request.LogonUserIdentity).Returns(HttpContext.Current.Request.LogonUserIdentity);
            _context.SetupGet(c => c.Request.HttpMethod).Returns(HttpContext.Current.Request.HttpMethod);

            var cookies = new HttpCookieCollection();

            _context.SetupGet(c => c.Response.Cookies).Returns(cookies);
            _context.Setup(c => c.Response.SetCookie(It.IsAny <HttpCookie>())).Callback <HttpCookie>(cookies.Set);

            return(_rulesInterpreter.Interpret(_context.Object, rule));
        }