我有一个ASP MVC 5应用程序,我注意到登录用户仍然可以访问注册和登录页面。我还注意到,当登录用户尝试访问未授权的控制器操作时,会将其重定向到登录页面。这很令人困惑,因为用户已经登录。
如何解决此问题,以便未经授权重定向到其他401错误页面或视图。
答案 0 :(得分:0)
在注册/登录页面上,您可以重定向已登录的用户:
[AuthorizeRole(Roles="Admin")]
public ActionResult Admin()
{
//...
}
如果您使用角色,则可以覆盖public class AuthorizeRoleAttribute : AuthorizeAttribute
{
public override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{
if (filterContext.HttpContext.User.Identity.IsAuthenticated
// Check if user is in roles
&& Roles.Split(',').Any(filterContext.HttpContext.User.IsInRole))
{
// Not in any role change view
filterContext.Result = new ViewResult
{
ViewName = "~/Views/Shared/UnauthorizedRole.cshtml"
};
}
else{
base.HandleUnauthorizedRequest(filterContext);
}
}
}
Math.max(...numberArray);
AuthorizeRoleAttribute.cs
修改:覆盖HandleUnauthorizedRequest
Math.max(len)