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