据我所知,目前ACS 2.0中默认的Windows Live ID身份提供程序只提供两种声明-名称标识符(与用户和应用程序相关的base64唯一ID,但对描述某人毫无用处)和身份提供程序声明,这两种声明可以让您知道您与LiveID的对话。我想知道是否可以为Window Live ID配置一个替代身份提供商,该提供商可以通过其他声明提供姓名和其他Live ID配置文件信息。
谢谢,-Patrick
使用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
仅供参考-谷歌;雅虎作为IP提供了额外但可选的声明emailaddress
&name
。因此,您还可以检索一个示例,John Doe&john.doe@gmail.com。
请注意,使用这两个可选声明将提示用户,当他们第一次登录时,他们将暴露在您的服务中。此时,用户可以取消操作。我建议你只得到你真正需要的声明,因为这可能会吓跑潜在用户。
我以前对此进行过调查,发现直接的答案是否定的。
但是,您可以使用带有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的服务器端场景。
来自另一个微软网站:
例如,以下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"