经过大量研究后,我已经让我的 WPF 应用程序通过 Azure 移动服务登录用户。我的移动服务已连接到我设置的 Azure Active Directory。但是,当我使用 MobileServiceClient.LoginAsync(...) 登录用户时,MobileServiceUser UserId 似乎处于不可读的哈希中。例如,它看起来像:“Aad:X3pvh6mmo2AgTyHdCA3Hwn6uBy91rXXXXXXXXXX”。这到底是什么?
我想获取用户的显示名称以供使用,但我不知道如何操作。
最佳答案
这是 Azure Active Directory 的用户 ID。您需要创建一个服务来通过服务公开您的 AAD 信息,并使用从用户处获得的访问 token 检索其他信息。
第一:
ServiceUser user = this.User as ServiceUser;
var identities = await user.GetIdentitiesAsync();
var aad = identities.OfType<AzureActiveDirectoryCredentials>().FirstOrDefault();
var aadAccessToken = aad.AccessToken;
var aadObjectId = aad.ObjectId;
这将为您提供访问 token 和 objectID ,然后您需要通过 AAD graphy API 查询信息。 https://msdn.microsoft.com/library/azure/dn151678.aspx 查看示例请求部分。您应该向查询提供您获得的访问 token 和 objectId。
关于c# - 如何从MobileServiceUser获取用户名、电子邮件等?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29884219/