MVC获取Azure Active Directory身份验证用户的名称和姓氏

时间:2015-11-18 02:02:52

标签: c# asp.net-mvc azure azure-active-directory

我可以使用以下方式获取经过身份验证的用户的用户名(电子邮件格式):

var autenticateduser = HttpContext.User.Identity.Name;

使用QuickWatch窗口我可以使用以下表达式查找给定名称和姓氏。是否有更简洁的方法来获取此信息?

(new System.Linq.SystemCore_EnumerableDebugView<System.Security.Claims.Claim>(((System.Security.Claims.ClaimsIdentity)(HttpContext.User.Identity)).Claims)).Items[5]

2 个答案:

答案 0 :(得分:9)

怎么样

ClaimsPrincipal cp = ClaimsPrincipal.Current;
string welcome = string.Format("Welcome, {0} {1}!", cp.FindFirst(ClaimTypes.GivenName).Value, cp.FindFirst(ClaimTypes.Surname).Value);

答案 1 :(得分:0)

这样您也可以获得非标准声明,您只需要知道密钥的名称,例如可以从openidconnect YOURDOMAIN / .well-known / openid-configuration JSON响应中获取。

  

Hello @ User.Claims.Single(a =&gt; a.Type ==&#34; http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname&#34;)。值!

system.security.claims.claimsprincipal.claims API reference