我有一个.Net mvc项目,我在登录控制器中手动验证用户身份。因此,我在Global.asax中设置了FormsAuthentication。
protected void Application_PostAuthenticateRequest(Object sender, EventArgs e)
{
var authCookie = HttpContext.Current.Request.Cookies[FormsAuthentication.FormsCookieName];
if (authCookie != null)
{
FormsAuthenticationTicket authTicket = FormsAuthentication.Decrypt(authCookie.Value);
if (authTicket != null && !authTicket.Expired)
{
var roles = authTicket.UserData.Split(',');
HttpContext.Current.User = new System.Security.Principal.GenericPrincipal(new FormsIdentity(authTicket), roles);
}
}
}
因此,现在如果我在所有控制器的顶部添加[Authorize](如果没有授权用户)将显示401错误页面,但是如果未经授权的用户我想要的是重定向到登录页面。我怎样才能做到这一点 ? 我没有使用身份服务器。