我在 MVC 工作。我有错误
err_too_many_redirects
在
处理未经授权的请求
.
public class AuthCheckService : AuthorizeAttribute
{
protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{
if (filterContext.RequestContext.HttpContext.Request.IsAjaxRequest())
{
//Ajax request doesn't return to login page, it just returns 403 error.
filterContext.HttpContext.Response.Clear();
filterContext.HttpContext.Response.StatusCode = 501;
throw new ModelStateException("Your Session has expired- Please login again!");
}
else
{
base.HandleUnauthorizedRequest(filterContext);
//filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary(new { action = "Login", controller = "Account" }));
}
}
}
请让我知道我哪里出错了?
我在测试 web 配置文件时犯了一个愚蠢的错误:
<sessionState timeout="2" cookieName="OnshoreMaintSSID" regenerateExpiredSessionId="true" />
<authentication mode="Forms">
<forms loginUrl="Account/Login" timeout="1" name=".Onshore" requireSSL="false" />
</authentication>
<pages>
如您所见,会话状态超时大于表单身份验证超时。这导致了这个问题。
解决方案:
<sessionState timeout="1" cookieName="OnshoreMaintSSID" regenerateExpiredSessionId="true" />
<authentication mode="Forms">
<forms loginUrl="Account/Login" timeout="2" name=".Onshore" requireSSL="false" />
</authentication>
<pages>
希望这会对其他人有所帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句