1

文字列のリストである変数があります

var names = new List();

.AccountManagement.Principalクエリの結果の名前を名前に割り当てたい

 PrincipalContext ctx = new PrincipalContext(ContextType.Domain);
 UserPrincipal buser = UserPrincipal.FindByIdentity(ctx, user);

 if (buser != null)
 {
     var group = buser.GetGroups().Value().ToList();
     names = group;
 }

.Valueはのプロパティではないため、明らかにこれはコンパイルされませんGetGroups()

やってみたら

var group = buser.GetGroups().Value().ToList();
names = group;

私は得る

タイプSystem.DirectoryServices.AccountManagement.Principalを文字列に暗黙的に変換することはできません

groupの値を取得し、それに名前を文字列のリストに適用したい

4

3 に答える 3

3

Value()メソッド/拡張メソッドのようなものはありません

文字列のリストでユーザー名のリストを取得する場合は、次の操作を実行できます。

List<string> userList = buser.GetGroups().Select(r=>r.Name).ToList();
于 2012-10-04T10:46:32.803 に答える
2

試してみる価値:

PrincipalContext ctx = new PrincipalContext(ContextType.Domain); 
UserPrincipal buser = UserPrincipal.FindByIdentity(ctx, user); 
if (buser != null) 
{ 
    names = (
        from 
            groupPrincipal in buser.GetGroups() 
        select 
            groupPrincipal.Name
        ).ToList(); 
} 
于 2012-10-04T10:41:46.540 に答える
1

バリューメソッドはありません。このステートメントbuser.GetGroups()は、PrincipalSearchResultコレクションを返します。

  PrincipalSearchResult<Principal> group = buser.GetGroups();

次に、コレクションを繰り返し処理して、名前を取得できます

  foreach(Principal pr in group)
     Console.WriteLine(pr.Name);
于 2012-10-04T10:46:52.817 に答える