我有一个使用Microsoft Live进行身份验证的Windows应用商店应用。授权后,我有一个验证码和一个访问令牌。我已将身份验证令牌包含在身份验证标头中并调用Web服务。
在Web服务中,我将访问Dynamics AX 2012,并将设置一个基于声明的用户来访问它。因此,我需要知道实时用户名是什么,以便在从Web服务登录到AX时指定它。
我能找到的能够检索实时用户名的唯一方法是使用REST api通过wl.emails范围询问我的配置文件详细信息。问题是我需要在验证客户端应用程序时给出的访问令牌。
我看到他们的选择:(不按任何顺序)
在标题中传递访问令牌,以便我可以使用服务器端请求电子邮件地址
在标题中传递实时用户名,这样我就不需要向服务器端请求
找到基于有效身份验证令牌请求访问令牌的方法,以便我可以请求电子邮件地址
有没有人对如何解决这个问题有任何建议,是否传递访问令牌之类的东西会不好juju?
谢谢堆
答案 0 :(得分:3)
答案嵌入在Microsoft Live Connect Developer论坛中:
使用Live SDK登录时,将参数更改为“wl.emails”(而不是wl.basic)
var result = await liveIdClient.LoginAsync(new[] { "wl.emails" });
Windows 8 / Live SDK会弹出一个对话框,通知客户端应用正在请求用户的电子邮件地址。
如果用户确定;
...在返回的键/值中,其中一个元素将是“首选”,其值为用户首选的电子邮件地址
HTH