基本上我想显示来自azure AD的用户的各个领域。 我能够显示除signInName之外的所有字段。 登录属性的类型为: IList IUser.SignInNames {get;}这就是为什么我的逻辑不工作,因为我正在使用一个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用户的signinname?我应该使用哪些财产? – dotnetman
你的名字是什么意思?我们可以使用UserPrincipalName来显示登录电子邮件,或使用显示名称/名字和姓氏显示其登录名。你使用B2C租户吗? –
Hello Jambor, 感谢您的回复。是的,我使用B2C租户。我认为上述代码的问题是我显示signinName的方式。我认为问题在于类型。它是IList Iuser登录名。我认为我们需要在控制台上以不同的方式显示它? –
dotnetman