使用Active Directory中的安全组进行基于角色的Asp.Net身份验证

15

我试图做一件简单的事情(我以为)- 使用域中的Active Directory组使用基于角色的安全性来保护我的应用程序。

具体而言,我需要根据当前登录用户是否属于Active Directory中的domain\groupA来显示/隐藏页面上的项目。出于某种原因,很难找到有关使用Active Directory的信息。 我似乎找到的所有内容都详细介绍了使用基于表单的身份验证使用角色,或者使用数据库存储信息。

我想做的就是使用我们在Active Directory中已经概述的安全结构。 有人能解释一下我需要什么吗?

我需要:

  1. <roleManager enabled="true"/>web.config
  2. <allow roles ="domain\groupA"/>web.config
  3. IIS设置为Windows身份验证
  4. if (User.IsInRole(@"domain\groupA")){ //do stuff } 在我的页面中?

还缺少什么?任何东西吗? 因为它不起作用。 谢谢大家的帮助。

1个回答

22

你可能只需要在web.config中添加一个RoleProvider,告诉应用程序如何针对AD进行搜索。

示例代码来自这里

<roleManager defaultProvider="WindowsProvider" 
  enabled="true"
  cacheRolesInCookie="false">
  <providers>
    <add
      name="WindowsProvider"
      type="System.Web.Security.WindowsTokenRoleProvider" />
  </providers>
</roleManager>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接