首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASP.NET 5用于Windows身份验证的自定义角色

问ASP.NET 5用于Windows身份验证的自定义角色
EN

Stack Overflow用户
提问于 2015-05-10 04:12:02
回答 1查看 8.7K关注 0票数 7

我正在使用ASP.NET 5构建一个使用的intranet类型站点。我有身份验证工作,但我不希望域上的每个人都可以访问intranet站点。我不能使用域角色,所以我已经在Server中设置了自己的自定义角色。我有一个表,它将域名用户名映射到角色。我希望将对intranet站点的访问仅限于在Server角色表中定义的角色的用户。如何在ASP.NET 5中为Windows身份验证设置自定义角色?谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-10 05:48:19

您不需要设置自定义角色。您需要创建一个自定义授权属性,正如所描述的这里。

更新:

是的,您可以全局地使用您的自定义授权属性。假设这里是您的自定义授权属性:

代码语言:javascript
复制
public class MyAuthorizeAttribute : AuthorizeAttribute
{
    protected override bool AuthorizeCore(HttpContextBase httpContext)
    {
        var username = httpContext.User.Identity.Name;

        // Check to see if user has a role in the database
        var isAuthorized = db.User.Find(username).Any();

        return isAuthorized;
    }
}

然后,您可以在Action级别或Controller级别使用它,如下所示:

代码语言:javascript
复制
[MyAuthorize]
public ActionResult Index()
{
}

或者,可以将其注册为FilterConfig类中的App_Start文件夹下的全局筛选器,如下所示:

代码语言:javascript
复制
public class FilterConfig
{
    public static void RegisterGlobalFilters(GlobalFilterCollection filters)
    {
        filters.Add(new HandleErrorAttribute());
        filters.Add(new MyAuthorizeAttribute());
    }
}
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30147627

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档