2016-04-01 3 views
0
var result = grpResponse.Entries[0]; 

if (result.Attributes["member"] != null) 
{ 
    for (var i = 0; i < result.Attributes["member"][i].ToString() 
} 

上記のコードは、グループのすべてのメンバーを取得します。すなわち、グループは、グループおよびユーザを含むことができる。グループのメンバがActive Directoryのユーザーまたはグループであるかどうかを確認する方法C#

ユーザーのみを取得するにはどうすればよいですか?

+0

を使用すると、ユーザーがグループを区別する方法は? – Adil

+0

ユーザーにはエントリとグループがありません。だから私は例外をユーザーの詳細を追加中に取得しています。 – Shesha

+0

例外が発生する行は何ですか?ループはどちらもコンパイルされませんが、完全なコードですか? – Adil

答えて

-1

あなたはあなたのユーザーのために

#microsoft.graph.user 

を与えるタイプを持っている必要があります。これはオフィスのグラフを使っている場合です。それを行う方法は違うかもしれませんが、少なくともこれは1つです。

+1

これは** Active Directory **、ユーザー、グループとは何が関係していますか? –

+0

すべてと何も。私が言ったように、それはあなたの広告にどのように照会しているかによって異なります。私の例では、基本的にADをトラバースして、ユーザーからグループ、グループメンバシップ、そしてドキュメントまでのすべてを照会できるオフィスグラフを使用しました。私はグループのメンバーのリストを取得するために "メンバー"クエリを使用することができ、メンバーのTYPEはそれがユーザーかグループか他の何かを指定します。私の答えに書いたように、他にもそれを行う方法がありますが、それはあなたの質問に対する答えの一つです。そのダウンワードは私には意味をなさない。 –

0

System.DirectoryServices.AccountManagement(S.DS.AM)名前空間を確認する必要があります。

基本的に、あなたはドメインコンテキストを定義し、簡単にADのユーザーおよび/またはグループを見つけることができます:

// set up domain context - limit to the OU you're interested in 
using (PrincipalContext ctx = new PrincipalContext(ContextType.Domain, null, "OU=YourOU,DC=YourCompany,DC=Com")) 
{ 
    // find the group in question 
    GroupPrincipal group = GroupPrincipal.FindByIdentity(ctx, "YourGroupNameHere"); 

    // if found.... 
    if (group != null) 
    { 
     // iterate over members 
     foreach (Principal p in group.GetMembers()) 
     { 
      UserPrincipal up = p as UserPrincipal; 

      if (up != null) 
      { 
       Console.WriteLine("{0}: {1}", p.StructuralObjectClass, p.DisplayName); 
       // do whatever you need to do with that user principal 
      } 
     } 
    } 
} 

あなたは、グループのメンバーシップからだけユーザーを取得することはできません - あなたはフィルタリングする必要があるあなたが取得した後結果は戻ってくる。

新しいS.DS.AMは、ADのユーザーやグループで本当に簡単に遊べます!

ここでそれについて詳しく読む:

関連する問題