使用VB.NET检测Windows用户所在的域用户组

时间:2009-09-10 08:26:03

标签: asp.net vb.net active-directory usergroups

我知道使用Dim currUser As String = Request.ServerVariables(“LOGON_USER”)会返回Domain \ Username,但我想知道该用户在Active Directory中说的是什么组。

2 个答案:

答案 0 :(得分:3)

您想要一个群组列表吗?或者您想检查用户是否是特定组的成员?

如果是后者,您可以使用WindowsPrincipal.IsInRole()来检查用户是否属于特定组:

http://msdn.microsoft.com/en-us/library/fs485fwh.aspx

例如,如果要检查用户是否是管理员,您可以使用:

If Page.User.IsInRole("BUILTIN\Administrators") Then
    ' Do something
End If

答案 1 :(得分:2)

您可以使用UserPrincipal.GetAuthorizationGroups Method

imports System.DirectoryServices.AccountManagement
dim name as string = Request.ServerVariables("LOGON_USER") 
dim user As UserPrincipal = UserPrincipal.FindByIdentity( new PrincipalContext( ContextType.Domain ), name)
dim groups As PrincipalSearchResult(Of Principal)= user.GetAuthorizationGroups()