我有行动
[授权] public ActionResult ChangeProfile(用户模型) { //我的代码 }
和管理网站中的操作
[Authorize(Roles="Admins")]
public ActionResult UserManager(User model)
{
// my code
}
我喜欢当我访问行动时ChangeProfile =>重定向到用户站点中的登录页面(如果没有登录) 当我访问行动时UserManager =>重定向到管理站点中的adminlogin页面(如果没有使用Admins角色登录) 请帮我告诉我我能做什么,非常感谢你!
答案 0 :(得分:1)
使用自定义AuthorizeAttribute
并覆盖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" />