[asp.net-mvc]ASP.NET IIS 用户角色身份验证

发布时间: 2016/10/9 6:11:36
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我目前正在进行一个 ASP.NET MVC4 网站。 并在该网站我想用户的某些角色被允许,运行该代码的一部分。 我使用以下代码︰

    [Authorize(Roles = GROUP)]
    public void Auth()
    {
        /* if user is in the domain and signed in
         * and a member of the above group 
         * they will come here */

        username = User.Identity.Name;

        //Do somthing
    }

这伟大工程,但当用户不是域的一部分和 (或) 组它西港岛线提示输入用户名和密码。它是可能要跳过该提示,只是将该用户重定向?

这个网站是安装在与身份验证设置为 windows 身份验证的 IIS 8

解决方法 1:

嗯,我将创建一个自定义授权属性和执行 HandleUnauthorizedRequest 方法来解决这个问题。

public class CustomAutorizeAttribute : AuthorizeAttribute
{
   protected override bool AuthorizeCore(HttpContextBase httpContext)
   {
      // do authorization logic
      // ...


      return (/* isAuthorized */);
   }


   protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
   {
      UrlHelper urlHelper = new UrlHelper(filterContext.RequestContext);


      filterContext.Result = new RedirectResult(urlHelper.Action("Index", "Error"));
   }
}

详细信息请阅读如何︰ 创建自定义授权属性

赞助商