据我所知,目前ACS 2.0中的默认Windows Live ID身份提供程序只提供了两个声明nameidentifier(与用户和您的应用程序关联的base64唯一ID,但对于描述某人无用)以及identityprovider声明,它可以让您知道你和LiveID交谈。我想知道是否可以为Window Live ID配置另一个身份提供者,该提供者可以通过其他声明提供姓名和其他Live ID个人资料信息。
谢谢, -Patrick
答案 0 :(得分:3)
您无法使用Window的Live Identity Provider获取除nameidentifier
和identityprovider
声明之外的任何内容。
http://msdn.microsoft.com/en-us/library/gg185944.aspx
Azure ACS 2.0可用的其他提供程序都在此链接中详细列出。 http://msdn.microsoft.com/en-us/library/gg185971.aspx
仅供参考 - Google&雅虎作为IP提供额外但可选的声明emailaddress
& name
。所以你也可以检索一下 John Doe & john.doe@gmail.com 。
请注意,使用这两个可选声明会在第一次登录时提示用户他们将接触到您的服务。此时用户可以取消操作。我建议您只获得您真正需要的声明,因为它可能会吓跑潜在用户。
答案 1 :(得分:1)
我之前对此进行了调查,发现直接答案是否定的。
但是,您可以在ACS中使用ADFS来注入更多声明。
似乎LiveId设置允许您发布令牌以获取类似
的信息{
"id": "b6b2a7e8f2515e5",
"name": "Apurva Dalia",
"first_name": "Apurva",
"last_name": "Dalia",
"gender": null,
"link": "http://cid-b6b2a7e8f2515e5.profile.live.com/",
"locale": "en_US",
"updated_time": "2011-10-26T21:13:05+0000"
}
如果这是真的,那么您可以将此信息注入呼叫者。
请参阅Live SDK的Server Side scenarios。
来自其他Microsoft网站:
例如,以下GET 请求,没有任何访问令牌 指定,将返回用户的 公开个人资料。 https://apis.live.net/v5.0/8c8ce076ca27823f
Windows返回的信息 Live会如下所示。
“id”:“8c8ce076ca27823f”,“name”: “Roberto Tamburello”,
“first_name”:“Roberto”,
“last_name”:“Tamburello”,
“gender”:null,“locale”:“en_US”