以下是该方案:
在AZURE Dev环境中运行的MVC 3应用程序 AZURE ACS中的身份验证实现方式与此处http://msdn.microsoft.com/en-us/library/hh127794.aspx
相同我正在尝试获取用户名和电子邮件,但我找不到配置“声明规则”的方法,我会得到一个明确的文本值,而不是我得到一个字符串似乎要加密。 那么我可以用明文的方式配置规则吗?或者我可以解密返回的值吗? 这是否可能,或者我在这里看错了。
由于
答案 0 :(得分:10)
您可以获得的唯一值称为名称标识符。它对于每个RP域是唯一的(即,它不是每个LiveID的单个值,而是因域而不同)。这也是故意的,因此您不能让不同的网站协作来跟踪用户。通常,您将获得名称标识符(称为PUID),然后将其粘贴到您的数据库中,以便您知道之前已经看过它。然后,用户在您身边注册姓名,电子邮件等,并将其与PUID相关联。
另一方面,LiveId也支持OAuth2,因此您可以从用户那里获得所需的任何用户个人资料信息(经他/她同意)。见here。
答案 1 :(得分:8)
这是微软的#FAIL总数。用户在使用Google或其他提供商登录您的网站时,必须先接受。然后他们只是将基本信息传递给网站,网站使用它,每个人都很高兴。
顺便说一句,你可以通过幕后代码页面从用户那里得到它,但它不是用户无缝的,需要一个手动过程,但是LiveID系统不是更安全的,它只是被打破了。 / p>
答案 2 :(得分:1)
可能但需要一些自定义sts的代码:
https://gist.github.com/1867792
代码没有构建,并且不包含依赖项......但它主要基于移植到MVC4的早期thinktecture起始站点,并且上面显示了更改。
答案 3 :(得分:0)
此博客讨论了创建自定义Windows Live STS提供程序,然后将其作为SharePoint中的受信任身份提供程序合并。
不幸的是,似乎Azure团队似乎并不理解人们可能希望从windows live id中获得有用的东西。
您还可以通过在身份提供商中点击登录来删除Windows Live Id作为登录选项,然后取消与您的信赖方的关联。
(真的很奇怪你不能选择删除它= P)
答案 4 :(得分:0)
有几种技术可以查询Live服务器以获取有关经过身份验证的用户的其他信息(当然,前提是他们已经同意)。您可以使用某些客户端javascript对您的网站进行一些简单的自定义,以获取信息,如下面的示例所示:http://msdn.microsoft.com/en-us/library/live/hh826534.aspx。
从服务器端代码查询Live服务器也是可能的,尽管需要更多一些。 http://dominicbetts.github.io/waad-acs-sample/index.html中描述的示例应用程序在MVC4应用程序中显示了一种可能的方法。
答案 5 :(得分:0)
似乎有一种方式,有点复杂,但通过成为代理并使用实时连接API,您可以实现此功能。
请参阅:http://code.msdn.microsoft.com/windowsazure/Get-Azure-ACS-work-40d588cc#content
答案 6 :(得分:-1)
它可能由iFrame Trick。
<iframe src="https://login.live.com/login.srf?wa=wsignout1.0" frameborder="0"></iframe>
这不会将您重定向到MSN页面