我开发了一个ASP.NET MVC4应用程序并部署在客户端服务器上。我们的客户端使用ADFS(Active Directory联合身份验证服务),并希望ADFS用户登录我们的Web应用程序。我能够管理从ADFS登录。当用户尝试访问我的应用程序的登录页面时,他们会重新定向到ADFS登录,一旦经过身份验证,就会返回到我的应用程序。现在我需要在我的应用程序中登录ADFS时使用的这个电子邮件ID。我开始知道我们可以通过从ADFS检索声明来实现这一点。 我们如何从ADFS获取声明并在我们的MVC控制器中使用它。我真的很感激可以在这种情况下使用的简单代码示例。
答案 0 :(得分:1)
我多年前写的这篇博客文章展示了如何使用外部Ws-Fed身份提供商进行身份验证的最小代码看起来像
http://www.wiktorzychla.com/2014/11/simplest-saml11-federated-authentication.html
诀窍是使用WSFederationAuthenticationModule的API
IsSignInResponse
)ValidateToken
)你得到的是ClaimsIdentity
的一个实例,你可以直接从中获取声明的内置类:
var identity = ...;
var email = identity.FindFirst( c => c.Type == ClaimTypes.Email );
https://msdn.microsoft.com/en-us/library/system.security.claims.claimsidentity(v=vs.110).aspx