ASP.NET MVC标识:多个登录路径并修改控制器中的默认登录路径

use*_*512 4 asp.net-mvc asp.net-mvc-4

如何更改控制器的默认身份验证重定向路径(/ Account/Login)?我有4个控制器

ABC - >/ABC /登录

BCD - >/BCD /登录

EFG - >/EFG /登录

首页--->帐户/登录

Tob*_*ias 7

根据Chris Pratt的想法,这是一个自定义的Authorize属性:

public class CustomAuthorize:AuthorizeAttribute
{
    protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
    {
        string controller = filterContext.RouteData.Values["controller"].ToString();
        filterContext.Result = new RedirectToRouteResult(new
        RouteValueDictionary(new{ controller = controller, action = "Login" }));
    }
}
Run Code Online (Sandbox Code Playgroud)

可以在你的控制器上使用,如下所示:

[CustomAuthorize]
public class ABCController : Controller
Run Code Online (Sandbox Code Playgroud)

这会将未经授权的客户端重定向到它尝试访问的控制器上的"登录"操作.记得加入[AllowAnonymous]登录操作.