C#で特定のユーザーのLDAPActiveDirectoryのユーザーグループを確認する必要があります。つまり、このユーザー名をメソッドに渡すと、そのユーザーが属するグループのリストが返されます。これで私を助けてくれませんか。Im Searching alotしかし、毎回新しいエラーが発生します。
LDAPパス:192.168.1.4
ドメイン名:Arslan
ユーザー名:ArslanP
パスワード:testad
C#で特定のユーザーのLDAPActiveDirectoryのユーザーグループを確認する必要があります。つまり、このユーザー名をメソッドに渡すと、そのユーザーが属するグループのリストが返されます。これで私を助けてくれませんか。Im Searching alotしかし、毎回新しいエラーが発生します。
LDAPパス:192.168.1.4
ドメイン名:Arslan
ユーザー名:ArslanP
パスワード:testad
.NET 3.5以降を使用しているため、System.DirectoryServices.AccountManagement
(S.DS.AM)名前空間を確認する必要があります。ここでそれについてすべて読んでください:
.NETFramework3.5でのディレクトリセキュリティプリンシパルの管理
基本的に、アセンブリへの参照を追加するSystem.DirectoryServices.AccountManagement
と、ドメインコンテキストを定義して、AD内のユーザーやグループを簡単に見つけることができます。
using System.DirectoryServices.AccountManagement;
public List<GroupPrincipal> GetGroupsForUser(string username)
{
List<GroupPrincipal> result = new List<GroupPrincipal>();
// set up domain context - if you do a lot of requests, you might
// want to create that outside the method and pass it in as a parameter
PrincipalContext ctx = new PrincipalContext(ContextType.Domain);
// find user by name
UserPrincipal user = UserPrincipal.FindByIdentity(username);
// get the user's groups
if(user != null)
{
foreach(GroupPrincipal gp in user.GetAuthorizationGroups())
{
result.Add(gp);
}
}
return result;
}
新しいS.DS.AMを使用すると、ADのユーザーやグループを簡単に操作できます。
この関連する質問はあなたを助けるかもしれません:
特定のADグループのActiveDirectoryからユーザーのリストを取得する
逆の質問をします。これは、グループを知っているときにユーザーのリストを確認する方法ですが、他の回答も役立つ場合があります。
この質問への回答も参照してください。