WebTokenRequestResult 中的用户名为空

Username in WebTokenRequestResult is empty

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

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

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

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

根据文档 (https://docs.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 属性 完全不同。