Asp.net mvc 4 如何在mvc internet应用程序模板中重定向到管理员登录页面?(通过defaut,它重定向到帐户/登录页面) 我在用户站点和管理员站点登录页面

Asp.net mvc 4 如何在mvc internet应用程序模板中重定向到管理员登录页面?(通过defaut,它重定向到帐户/登录页面) 我在用户站点和管理员站点登录页面,asp.net-mvc-4,Asp.net Mvc 4,我有行动 [授权] 公共操作结果更改配置文件(用户模型) { //我的代码 } 管理站点中的操作 [Authorize(Roles="Admins")] public ActionResult UserManager(User model) { // my code } 我喜欢访问action ChangeProfile=>重定向到用户站点中的登录页面(如果不登录) 当我访问action UserManager=>时,重定向到admin站点中的adminl

我有行动

[授权] 公共操作结果更改配置文件(用户模型) { //我的代码 }

管理站点中的操作

 [Authorize(Roles="Admins")]
    public ActionResult UserManager(User model)
    {
      // my code
    }
我喜欢访问action ChangeProfile=>重定向到用户站点中的登录页面(如果不登录) 当我访问action UserManager=>时,重定向到admin站点中的adminlogin页面(如果不是使用Admins角色登录)
请帮我看看我能做什么,非常感谢

使用自定义
authorizedRequest
并覆盖
HandleUnauthorizedRequest

public class CustomAuthorize: AuthorizeAttribute
{
    protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
    {
        if (filterContext.HttpContext.Request.IsAuthenticated)
                base.HandleUnauthorizedRequest(filterContext);
        else
            filterContext.Result = new RedirectToRouteResult(new 
               RouteValueDictionary("Admin login route"));
    }
}

[CustomAuthorize(Roles="Admins")]
public ActionResult UserManager(User model)
{
    // my code
}
如果web.config文件中有类似的内容:

<forms loginUrl="~/Account/LogOn" timeout="2880" />

将其更改为此,但我不确定是否有效,但您可以尝试:

<forms loginUrl="/Account/LogOn" timeout="2880" />

还有一件事,当我使用用户角色成功登录时,在我访问管理区域后,它不会重定向到管理登录页面,而是重定向到用户站点中的登录页面,请帮助我修复它,谢谢。。