2016-11-24 26 views
0

基本的には、azure ADのユーザーのさまざまなフィールドを表示したいと考えています。 signInNameを除くすべてのフィールドを表示できます。 signinプロパティの型は です。IList IUser.SignInNames {get;}これは、私が1つのconsole.writeline()を使用しているので、私のロジックが機能しない理由です。編集1:Azure ADからサインイン名を表示

以下

は私のコードです:

private static async Task PeoplePickerExample(IActiveDirectoryClient client, string searchString) 
     { 

      List<IUser> usersList = null; 
      IPagedCollection<IUser> searchResults = null; 
      try 
      { 
       IUserCollection userCollection = client.Users; 
       searchResults = await userCollection.Where(user => 
        user.UserPrincipalName.StartsWith(searchString) || 
        user.DisplayName.StartsWith(searchString) || 
        user.GivenName.StartsWith(searchString) || 
        user.Surname.StartsWith(searchString)).Take(10).ExecuteAsync(); 
       usersList = searchResults.CurrentPage.ToList(); 
      } 
      catch (Exception e) 
      { 
       Program.WriteError("\nError getting User {0}", Program.ExtractErrorMessage(e)); 
      } 

      if (usersList != null && usersList.Count > 0) 
      { 
       do 
       { 
        int index = 1; 
        usersList = searchResults.CurrentPage.ToList(); 

        foreach (IUser user in usersList) 
        { 
         IUserFetcher userFetcher = user as IUserFetcher; 
         IDirectoryObject manager = await userFetcher.Manager.ExecuteAsync(); 
         IPagedCollection<IDirectoryObject> reports = await userFetcher.DirectReports.ExecuteAsync(); 
         Console.WriteLine("Sign in name:{0}", user.SignInNames); 
         Console.WriteLine("Manager:" + ((IUser)(manager)).DisplayName); 
         Console.WriteLine("Country:{0}", user.Country); 
         Console.WriteLine("Mail Nickname:{0}", user.MailNickname); 
         index++; 
        } 
        searchResults = await searchResults.GetNextPageAsync(); 
       } while (searchResults != null); 
      } 
      else 
      { 
       Console.WriteLine("User not found"); 
      } 

     } 

私はこれを使用して行を確認してください: ます。Console.WriteLine( "名前ログイン:{0}"、user.SignInNamesを)。

答えて

1

Microsoft.Azure.ActiveDirectory.GraphClient.Extensions.NonEntityTypeCollectionImpl`1 [Microsoft.Azure.ActiveDirectory.GraphClient.SignInName]

ないSignInNamesがない場合、コンソールアプリケーションがメッセージ上に表示されます。プロパティ "SignInNames"には、ローカルアカウントユーザーがAzure Active Directory B2Cテナントにサインインするために使用するサインイン名のコレクションが含まれています。この情報はthis articleにあります。 Azure AD B2Cテナントを使用しない場合、またはサインインするローカルアカウントユーザーがいない場合は、上記の情報が表示されます。

+0

corpnetまたはmicrosoftユーザーのサインイン名を取得するにはどうすればよいですか?どの財産を使用するのですか? – dotnetman

+0

あなたのサインイン名は何を意味していますか? UserPrincipalNameを使用してサインイン電子メールを表示したり、[表示名/名&姓]を使用してログイン名を表示することができます。 B2Cテナントを使用していますか? –

+0

こんにちはジャンボール、 戻ってくれてありがとう。はい私はB2Cテナントを使用しています。私は上記のコードの問題は私がsigninNameを表示する方法だと思う。私は問題がそのタイプにあると思う。 IList Iuserのサイン名です。私はそれをコンソールに違って表示する必要があると思いますか? – dotnetman

関連する問題