在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);
}
}`
真的好笑,但为什么这个愚蠢的错误一次又一次地发生。任何想法?
答案 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
为真,您有重定向循环。
所以,你需要其他条件来检查这个