.NET 3.5以降の場合は、System.DirectoryServices.AccountManagement
(S.DS.AM)名前空間を確認する必要があります。ここではそれについてのすべてを読む:
基本的に、あなたはドメインコンテキストを定義し、簡単にADのユーザーおよび/またはグループを見つけることができます:
// set up domain context
PrincipalContext ctx = new PrincipalContext(ContextType.Domain);
// find a user
UserPrincipal user = UserPrincipal.FindByIdentity(ctx, "SomeUserName");
if(user != null)
{
// do something here....
PrincipalSearchResult<Principal> groups = user.GetAuthorizationGroups();
// enumerate the groups found - check to find your group in question
}
新しいS.DS.AMにより、ADのユーザーやグループで簡単に遊ぶことができます。
また、あなたはまた、ユーザとグループのプリンシパルを見つけることができます。
// set up domain context
PrincipalContext ctx = new PrincipalContext(ContextType.Domain);
// find a user
UserPrincipal user = UserPrincipal.FindByIdentity(ctx, "SomeUserName");
GroupPrincipal groupToCheck = GroupPrincipal.FindByIdentity(ctx, "YourGroupNameHere");
if(user != null && groupToCheck != null)
{
// this call will tell you - yes or no - whether that user is member of that group
bool isMember = user.IsMemberOf(groupToCheck);
}
非常に興味深い、それぞれのユーザ名が、私は簡単にその情報を読み取ることができるとユーザーのWindowsが既にドメインにログインしている場合はどうなりますか? –
@Perro'Xympa'Nascimento:確かに、 'UserPrincipal user = UserPrincipal.Current'を使用して現在のユーザを取得します –
公開すると動作しません。この例外がスローされます: 'System.DirectoryServices.AccountManagement'タイプのオブジェクトをキャストすることができません.GroupPrincipal 'を入力して' System.DirectoryServices.AccountManagement.UserPrincipal 'と入力します。 –