webdevqa.jp.net

.Netを使用して、ユーザーが特定のADグループに属しているかどうかを確認します

すべてのユーザーのグループを列挙することなく、C#を使用してユーザーが特定のADユーザーグループに属しているかどうかを判断するための最良の方法は何ですか。これは、単一のLDAPクエリまたは検索を使用して実行できますか?

14
rami

現在のユーザーを確認していて、必要なグループの名前がわかっている場合は、すべてのグループを列挙する必要はありません。 VB.NETのサンプルコードは次のとおりです。

Public Function IsInGroup(ByVal GroupName As String) As Boolean
    Dim MyIdentity As System.Security.Principal.WindowsIdentity = System.Security.Principal.WindowsIdentity.GetCurrent()
    Dim MyPrincipal As System.Security.Principal.WindowsPrincipal = New System.Security.Principal.WindowsPrincipal(MyIdentity)
    Return MyPrincipal.IsInRole(GroupName)
End Function

同様にC#で:

private static bool IsInGroup(string GroupName)
{
    System.Security.Principal.WindowsIdentity MyIdentity = System.Security.Principal.WindowsIdentity.GetCurrent();
    System.Security.Principal.WindowsPrincipal MyPrincipal = new System.Security.Principal.WindowsPrincipal(MyIdentity);
    return MyPrincipal.IsInRole(GroupName);
}

別のユーザーのメンバーシップなどを確認するために微調整する必要がある場合は、 WindowsIdentityドキュメント にさらに例があります。

32
ewall
1
Cade Roux