Asp.net mvc 设置每个区域的表单身份验证重定向Url
我的项目布局如下:Asp.net mvc 设置每个区域的表单身份验证重定向Url,asp.net-mvc,asp.net-mvc-4,authentication,Asp.net Mvc,Asp.net Mvc 4,Authentication,我的项目布局如下: Areas | Admin Areas | FrontEnd 我希望每个区域的[Authorize]用户(因为管理员将使用与前端中的用户不同的表)。当我在我的管理区域的控制器中使用[Authorize]标记时,它会将我重定向到在根web.config文件中设置的表单身份验证登录url 是否可以在每个区域覆盖此设置?我看到每个区域都有一个Web.config文件,但如果我将其添加到其中,它似乎会忽略表单身份验证设置 如果我以错误的方式处理这个问题,我很乐意接受一些建议 编辑
Areas | Admin
Areas | FrontEnd
我希望每个区域的[Authorize]
用户(因为管理员将使用与前端
中的用户不同的表)。当我在我的管理区域的控制器中使用[Authorize]
标记时,它会将我重定向到在根web.config文件中设置的表单身份验证登录url
是否可以在每个区域覆盖此设置?我看到每个区域都有一个Web.config文件,但如果我将其添加到其中,它似乎会忽略表单身份验证设置
如果我以错误的方式处理这个问题,我很乐意接受一些建议
编辑:
我尝试了一些东西,但不知道它是否是最佳实践。基本上,实现我自己的CustomAuth
属性并重定向:
public class CustomAuth : AuthorizeAttribute
{
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
if (!base.AuthorizeCore(httpContext))
httpContext.Response.Redirect("~/Admin/Account");
return true;
}
}
这是一种有效的方法吗?我最终使用了自己的
[authorize]
属性,并在未经授权的访问时重定向
public class AuthorizeArea : AuthorizeAttribute
{
protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{
filterContext.Result = new RedirectResult("/Admin/Account");
}
}