您好我正在通过ADFS更改我的MVC 5应用程序以进行身份验证。
在SessionStart中使用我的global.asax.cs文件我有以下方法:
DoUserLogIn(Request.LogonUserIdentity, Session);
简化方法实现如下
private void DoUserLogIn(WindowsIdentity user, HttpSessionState session)
{
session["UserDisplayName"] = user.Name;
}
这在ADFS之前工作并且显示了userName。但是现在使用ADFS,显示的UserName是应用程序在IIS中运行的服务帐户用户。我应该使用什么来获取用户通过ADFS访问应用程序的实际用户名?
答案 0 :(得分:1)
假设您以最常见的方式进行设置,您应该可以通过访问ClaimsPrincipal类来访问当前用户的名称:
使用Thread.CurrentPrincipal并在使用之前确保它是ClaimsPrincipal。
即。 (Thread.CurrentPrincipal as System.Security.Claims.ClaimsPrincipal).Identity
http://msdn.microsoft.com/en-us/library/system.security.claims.claimsidentity(v=vs.110).aspx
ClaimsIdentity类的name属性应该为您提供所需的内容