Пример #1
0
        private ActionResult Execute(string url, string rule)
        {
            _context.SetupGet(c => c.Request.Url).Returns(new Uri(url));
            _context.SetupGet(c => c.Request.ApplicationPath).Returns(_rewriteBase);

            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));
        }
Пример #2
0
        public void OnActionExecuting(ActionExecutingContext filterContext)
        {
            var settings = _rewriteRulesService.GetSettings();

            if (!settings.IsEnabled || string.IsNullOrWhiteSpace(settings.Rules))
            {
                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);
            }
        }