WebTokenRequestResult中的用户名为空

时间:2016-03-04 21:56:50

标签: 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)必须做什么来获取用户个人资料数据(或至少是用户名)?

1 个答案:

答案 0 :(得分:1)

根据文档(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属性没有设置...... shrugs

和FYI," id"返回此处与使用身份验证请求返回的WebAccount.Id属性完全不同。