AZURE ACS - Windows Live ID - 如何获取经过身份验证的用户的电子邮件和名称?

Oak*_*ool 6 azure acs asp.net-mvc-3

这是场景:

MVC 3应用AZURE开发乳宁环境认证的AZURE ACS实现这里找到同样的方式http://msdn.microsoft.com/en-us/library/hh127794.aspx

我试图获取用户名和电子邮件,但我找不到配置"声明规则"的方法,我会得到一个明确的文本值,而不是我得到一个似乎是加密的字符串.那么我可以用明文的方式配置规则吗?或者我可以解密返回的值吗?这是否可能,或者我在这里看错了什么.

谢谢

dun*_*nry 10

IIRC,违反Windows Live隐私政策,将用户的姓名或电子邮件地址作为声明发布(与Gmail或Yahoo!不同).因此,不可能从Live获得这些声明(除非您碰巧是Microsoft).

您可以获得的唯一值称为名称标识符.它对于每个RP域是唯一的(即,它不是每个LiveID的单个值,而是因域而不同).这也是故意的,因此您不能让不同的网站协作来跟踪用户.通常,您将获得名称标识符(称为PUID),然后将其粘贴到您的数据库中,以便您知道之前已经看过它.然后,用户在您身边注册姓名,电子邮件等,然后将其与PUID相关联.

另一方面,LiveId还支持OAuth2,因此您可以从用户那里获得所需的任何用户配置文件信息(经他/她同意).看到这里.


小智 8

这是Microsoft的总#FAIL.用户在使用Google或其他提供商登录您的网站时,必须先接受.然后他们只是将基本信息传递到网站,网站使用它,每个人都很高兴.

顺便说一下,你可以通过幕后代码页面从用户那里得到它,但它不是用户无缝的,需要一个手动过程,但尽管如此,LiveID系统并不是更安全的,它只是打破了.