windows-store-apps - WebTokenRequestResult 中的用户名为空

标签 windows-store-apps microsoft-account

在 Windows 10 UWP 中,我尝试使用 WebAuthenticationCoreManager.RequestTokenAsync 从使用 Microsoft 帐户登录时获取结果。 我成功获得 WebTokenRequestResult。 ResponseData[0] 包含一个带有 ID 的 WebAccount - 但 UserName 为空。 调用的范围是 wl.basic - 所以我应该得到很多信息...... 我不确定如何检索额外信息 - 对于当前测试,用户名就可以了。

我检查了通用样本 - 在那里我发现了一个片段,它试图做我正在尝试的事情 - webTokenRequestResult.ResponseData[0].WebAccount.UserName 的输出。

顺便说一句 - 示例输出也是空的。

这是一个错误 - 或者我(以及示例中的 MS)必须做什么才能获取用户配置文件数据(或至少是用户名)?

最佳答案

根据文档 ( https://learn.microsoft.com/en-us/windows/uwp/security/web-account-manager ),您必须进行特定的 REST API 调用才能检索它:

var restApi = new Uri(@"https://apis.live.net/v5.0/me?access_token=" +     result.ResponseData[0].Token);

using (var client = new HttpClient())
{
    var infoResult = await client.GetAsync(restApi);
    string content = await infoResult.Content.ReadAsStringAsync();

    var jsonObject = JsonObject.Parse(content);
    string id = jsonObject["id"].GetString();
    string name = jsonObject["name"].GetString();
}

至于为什么没有设置 WebAccount 属性...耸耸肩

仅供引用,此处返回的“id”与身份验证请求返回的 WebAccount.Id 属性完全不同。

关于windows-store-apps - WebTokenRequestResult 中的用户名为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35806838/

相关文章:

xaml - 图像正在 UWP 应用程序中缓存

c# - 允许点击和点进

c# - 如何使用带有 UWP 的 Web 帐户管理器获取用户个人资料图片

azure - 有没有办法让应用程序在使用 Microsoft 帐户登录时要求多重身份验证?

c# - MVC5 + Microsoft 帐户 (Live ID) + IIS = redirect_uri 无效

c# - 使用 .net native 工具链编译后 Uwp 应用程序立即崩溃

c# - 是否可以在 Windows 应用商店应用程序中使用 Chromium Embedded Framework (CEF)

windows-runtime - 控制后台任务实例

windows-8 - 跨 WP8 和 Win8 识别用户 : ANID2 vs SafeCustomerId

azure-active-directory - 基于 token 和基于 cookie 的应用程序之间的 SSO 体验