基本的には、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を)。
corpnetまたはmicrosoftユーザーのサインイン名を取得するにはどうすればよいですか?どの財産を使用するのですか? – dotnetman
あなたのサインイン名は何を意味していますか? UserPrincipalNameを使用してサインイン電子メールを表示したり、[表示名/名&姓]を使用してログイン名を表示することができます。 B2Cテナントを使用していますか? –
こんにちはジャンボール、 戻ってくれてありがとう。はい私はB2Cテナントを使用しています。私は上記のコードの問題は私がsigninNameを表示する方法だと思う。私は問題がそのタイプにあると思う。 IList Iuserのサイン名です。私はそれをコンソールに違って表示する必要があると思いますか? –
dotnetman