我正在使用 Active Directory 对 Intranet 站点的用户进行身份验证。我想根据他们在 Active Directory 中所在的组来优化经过身份验证的用户。有人可以向我展示或指出有关如何在 ASP.NET 4.0 (VB) 中查找用户所在组的说明吗?
最佳答案
我意识到这篇文章已经很旧了,但我想我可能会用我正在使用的进程更新它。 (ASP.Net 4.0, VB)
如果使用集成的 Windows 安全性,则在域上。Page.User.IsInRole("domain\GroupName")
将检查通过身份验证的用户是否是指定组的成员。
如果您想检查经过身份验证的用户以外的其他用户组成员身份。
检查具有相同用户主体的多个组的两个阶段:
Dim MyPrincipal As New System.Security.Principal.WindowsPrincipal _
(New System.Security.Principal.WindowsIdentity("UserID"))
Dim blnValid1 As Boolean = MyPrincipal.IsInRole("domain\GroupName")
单阶段 checkin 单个组:
Dim blnValid2 As Boolean = New System.Security.Principal.WindowsPrincipal _
(New System.Security.Principal.WindowsIdentity("userID")).IsInRole("domain\GroupName")
注意:: IsInRole 方法确实适用于嵌套组。如果您有一个顶级组和一个作为成员的子组,并且用户是该子组的成员。
关于asp.net - 查找用户是否是 Active Directory 组 ASP.NET VB 的成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3190937/