3

ユーザー johnsmith がアクティブ ディレクトリ グループ MyManagers のメンバーであるとします。グループ MyManagers がグループ MyEmployees のメンバーであるとします。グループ MyEmployees がグループ MyUsers のメンバーであるとします。

johnsmith がアプリケーションにログインしたとき、彼がグループ MyUsers のメンバーであることをどのように知ることができますか?

C# の例を高く評価します。

ありがとう、クルヴィ

4

1 に答える 1

4

.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.Current; // this would be John Smith

if(user != null)
{
   // get the user's groups he's a member of
   PrincipalSearchResult<Principal> results = user.GetAuthorizationGroups();

   // now you just need to iterate over the groups and see if you find the
   // one group you're interested in
}

GetAuthorizationGroupsS.DS.AMでの呼び出しは、実際に再帰的なクエリを実行します。たとえば、グループが他のグループのメンバーであるため、ユーザーがメンバーになっているグループも取得します。

新しいS.DS.AMを使用すると、ADのユーザーやグループを簡単に操作できます。

于 2011-12-14T14:47:01.457 に答える