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 属性 完全不同。
在 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 属性 完全不同。