您的应用程序在MVC中重定向循环

时间:2014-11-19 11:10:06

标签: asp.net-mvc asp.net-mvc-4 session

在global.asax中编写代码之后,这个错误就出现了。如果我保持一个断点来检查它是否正在触发和旋转,最终浏览器结果与上面的响应[“你的应用程序重定向循环”]。     `

 public class SessionExpireAttribute : ActionFilterAttribute
       {
      public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        HttpContext ctx = HttpContext.Current;

        // check  sessions here
        if (HttpContext.Current.Session["username"] == null)
        {
            filterContext.Result = new RedirectResult("~/Account/Login");
            return;
        }

        base.OnActionExecuting(filterContext);
    }
}`

真的好笑,但为什么这个愚蠢的错误一次又一次地发生。任何想法?

3 个答案:

答案 0 :(得分:0)

对不起,我没有正确地阅读你的问题

public class SessionExpireAttribute : ActionFilterAttribute
       {
      public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        HttpContext ctx = HttpContext.Current;

        // check  sessions here
        if (HttpContext.Current.Session["username"] == null)
        {
            filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary {
                    { "Controller", "Accounts" },
                    { "Action", "Login" }
                    });

        }

        base.OnActionExecuting(filterContext);
    }
}

希望这有效。

答案 1 :(得分:0)

ActionFilter

中删除此AccountController

答案 2 :(得分:0)

当您重定向到“〜/ Account / Login”时,将再次调用OnActionExecuting的代码,因此HttpContext.Current.Session["username"] == null为真,您有重定向循环。

所以,你需要其他条件来检查这个