Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 设置每个区域的表单身份验证重定向Url_Asp.net Mvc_Asp.net Mvc 4_Authentication - Fatal编程技术网

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");
    }
}