从Live SDK获取用户的电子邮件地址

时间:2013-07-30 05:19:08

标签: sdk live

我有一个使用Microsoft Live进行身份验证的Windows应用商店应用。授权后,我有一个验证码和一个访问令牌。我已将身份验证令牌包含在身份验证标头中并调用Web服务。

在Web服务中,我将访问Dynamics AX 2012,并将设置一个基于声明的用户来访问它。因此,我需要知道实时用户名是什么,以便在从Web服务登录到AX时指定它。

我能找到的能够检索实时用户名的唯一方法是使用REST api通过wl.emails范围询问我的配置文件详细信息。问题是我需要在验证客户端应用程序时给出的访问令牌。

我看到他们的选择:(不按任何顺序)

  1. 在标题中传递访问令牌,以便我可以使用服务器端请求电子邮件地址

  2. 在标题中传递实时用户名,这样我就不需要向服务器端请求

  3. 找到基于有效身份验证令牌请求访问令牌的方法,以便我可以请求电子邮件地址

  4. 有没有人对如何解决这个问题有任何建议,是否传递访问令牌之类的东西会不好juju?

    谢谢堆

1 个答案:

答案 0 :(得分:3)

答案嵌入在Microsoft Live Connect Developer论坛中:

http://social.msdn.microsoft.com/Forums/live/en-US/c6dcb9ab-aed4-400a-99fb-5650c393a95d/how-retrieve-users-contacts-email-address

使用Live SDK登录时,将参数更改为“wl.emails”(而不是wl.basic)

var result = await liveIdClient.LoginAsync(new[] { "wl.emails" });

Windows 8 / Live SDK会弹出一个对话框,通知客户端应用正在请求用户的电子邮件地址。

如果用户确定;

...在返回的键/值中,其中一个元素将是“首选”,其值为用户首选的电子邮件地址

HTH