ASP.NET成员资格-使用哪个RoleProvider以便User.IsInRole()检查ActiveDirectory组?

标签 asp.net authentication active-directory roles active-directory-group

其实很简单的问题:

我目前已禁用IIS匿名访问,用户将使用其Windows登录名自动登录。但是,调用User.IsInRole(“角色名称”)将返回false。我仔细检查了User.Identity.Name()和“角色名称”,它应该返回true。

我目前在我的Web.Config中有这个:

更新
我在调用User.IsInRole(“角色名称”),在这里我应该调用User.IsInRole(“DOMAIN\Role name”)

但是,我仍然想知道是否完全需要条目?

我应该改变什么? (并且完全需要条目吗?)

  <authentication mode="Windows">
      <forms
      name=".ADAuthCookie"
      timeout="10" />
  </authentication>


<membership defaultProvider="ADMembershipProvider">
  <providers>
    <clear/>
      <add
         name="ADMembershipProvider"
         type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
         connectionStringName="ADConnectionString"
         connectionUsername="XXX\specialAdUser"
         connectionPassword="xx"
         />
  </providers>
</membership>

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

最佳答案

如果您使用Windows身份验证,则只要您记住为角色添加域(即DOMAIN\groupName)作为前缀,IsInRole将无需任何额外配置即可工作。

此外,您可以扮演自己的角色(双关语意),并针对例如SQL角色提供程序使用Windows身份验证,在该角色中,您不希望AD带有应用程序的自定义角色。

所以不,您根本不需要提供程序配置。

关于ASP.NET成员资格-使用哪个RoleProvider以便User.IsInRole()检查ActiveDirectory组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/863080/

相关文章:

asp.net - ASP.NET 应用程序中的 Google 桌面或索引文本文件搜索

python - 从 django-social-auth 移植到 python-social-auth 时,现场用户的访问器发生冲突

authentication - CVS 证书认证

.net - ASP .NET MVC 表单授权与 Active Directory 组

c# - 从 .NET 通过电子邮件地址搜索 AD 用户的正确方法

c# - 找不到程序集 'App_Web_kplju3v2

asp.net - 动态显示复选框

c# - 发布后配置文件出现在 bin 文件夹中

authentication - Angular2 auth guard 带有 http 请求和 observables

网络 MVC : SSO + AD group?