c# - 如何从MobileServiceUser获取用户名、电子邮件等?

标签 c# wpf azure azure-mobile-services azure-active-directory

经过大量研究后,我已经让我的 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/

相关文章:

azure - 如何使用 Azure Powershell SDK 设置 Azure Web 应用的 Java/Tomcat 选项

c# - 为什么我没有从我的 BLE 设备发送到我的 xamarin 表单应用程序的 byte [] 中获得正确的值?

wpf - 是否可以使用 ViewModel 第一种方法从 View 订阅 ViewModel 事件?

c# - 如何将图像保存到 Azure Blob 并使用特定字段命名并返回 Blob Url 并将其保存到 .net core 2.2 中的数据库

.net - BackgroundWorker 是否提供真正的多线程?

WPF 模板错误 - "Provide value on ' System.Windows.Baml2006.TypeConverterMarkupExtension' 引发了异常。”

azure - 在 Azure DevOps YAML Pipelines 上分配特定代理

c# - 使用没有 foreach 的 LINQ 按类别划分产品列表

c# - MonoMac 中的应用程序关闭

c# - WCF wsHttpBindingwith silverlight 中的跨域错误