获取用户';来自Live SDK的电子邮件地址

获取用户';来自Live SDK的电子邮件地址,sdk,live,Sdk,Live,我有一个使用Microsoft Live进行身份验证的Windows应用商店应用程序。授权后,我有一个身份验证码和一个访问令牌。我已经在身份验证头中包含了身份验证令牌,并调用了一个web服务 在web服务中,我将访问Dynamics AX 2012,并将设置一个基于声明的用户来访问它。因此,我需要知道live用户名,以便在从web服务登录到AX时指定它 我能找到的唯一能够检索实时用户名的方法是使用RESTAPI在wl.emails范围内询问我的配置文件详细信息。问题是,我需要验证客户端应用程序时

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

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

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

我看到的选项:(不按任何顺序)

  • 在邮件头中传递访问令牌,以便我可以在服务器端使用它来请求电子邮件地址

  • 在标题中传递live用户名,这样我就不需要在服务器端请求它了

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

  • 有没有人对如何解决这个问题以及传递诸如访问令牌之类的东西是否不好有什么建议


    感谢堆

    答案已嵌入Microsoft Live Connect开发者论坛:

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

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

    如果用户同意这一点

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

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