ASP MVC 5登录用户仍然可以访问登录和注册页面?

时间:2016-07-23 19:41:06

标签: redirect login asp.net-mvc-5 authorization http-status-code-401

我有一个ASP MVC 5应用程序,我注意到登录用户仍然可以访问注册和登录页面。我还注意到,当登录用户尝试访问未授权的控制器操作时,会将其重定向到登录页面。这很令人困惑,因为用户已经登录。

如何解决此问题,以便未经授权重定向到其他401错误页面或视图。

1 个答案:

答案 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)