0

我有一个项目布局,如:

Areas | Admin 
Areas | FrontEnd

我想要[Authorize]每个区域的用户(因为管理员将使用与 中的用户不同的表FrontEnd。当我[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;
    }
}

这是一种有效的方法吗?

4

1 回答 1

1

我最终使用自己的[Authorise]属性并重定向未经授权的访问。

public class AuthorizeArea : AuthorizeAttribute
{
    protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
    {
        filterContext.Result = new RedirectResult("/Admin/Account");
    }
}
于 2013-09-27T16:30:53.307 回答