2013-07-30 109 views
1

我有一个使用Microsoft Live进行身份验证的Windows应用商店应用程序。授权后,我有一个验证码和一个访问令牌。我已将身份验证令牌包含在身份验证标头中并调用Web服务。从Live SDK获取用户的电子邮件地址

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

我可以找到的唯一方法是能够检索活用户名是通过使用REST API来请求我的配置文件详细信息与wl.emails范围。问题是我需要在验证客户端应用程序时获得的访问令牌。

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

  1. 传递的访问令牌的头,所以我可以用它的服务器端请求的电子邮件地址

  2. 传活的用户名在标题中,所以我不需要请求服务器端

  3. 找到某种方式来根据有效的认证令牌来请求访问令牌,然后我可以请求电子邮件地址

有没有人有任何关于如何解决这个问题的建议,以及是否传递访问令牌等东西会不好?

感谢堆

回答

3

答案是嵌入在微软Live Connect开发论坛:

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

当与现场SDK登录,改变PARAMS为 “wl.emails”(而比wl.basic)

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

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

如果用户确定,

...在键/值返回的要素之一将是“首选”与价值是用户的首选电子邮件地址

HTH

相关问题