- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Azure ACS,并且我一直在寻找从 SAML 2.0 响应或其他内容中获取电子邮件和姓名的方法。
但我没有看到任何选项,我将用户重定向到 localhost:8000/acc/completesigninup/
我有来自 FormCollection 对象的 XML,我在 xml 中看到了电子邮件和名称,但我不知道如何获取它。 Identity dll 中是否包含一个解析器来获取该信息?
最佳答案
既然您提到了 FormCollection,我假设您正在使用 .Net 在 Windows 中进行编程。那么最简单的事情就是使用 WIF ( http://msdn.microsoft.com/en-us/security/aa570351 )。
这样您就不必解析 token 、验证它、设置用户身份,然后创建代表 token 信息的 cookie。
WIF,一旦您安装并配置了它(它的 SDK 附带了一个 Visual Studio 扩展来执行此操作),它将自动为您执行这些操作。
您可以查看一些使用 WIF 和 MVC 的示例。一个示例是带有 MVC3 的 ACS,您可以在以下位置找到它:
http://msdn.microsoft.com/en-us/library/hh127794.aspx
在 Controller 中执行此操作后,您可以访问用户的身份并获取声明值,例如:
((IClaimsPrincipal)HttpContext.User).Identity.Claims.FirstOrDefault(c => c.ClaimType == ClaimTypes.Email)
请注意,由于 Windows Live 隐私政策,ACS 中的 Windows Live IDP 不会将用户的电子邮件地址作为声明提供。
关于asp.net-mvc - 如何从 Azure ACS 获取电子邮件和姓名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7548872/
我是一名优秀的程序员,十分优秀!