MVC 获取 Azure Active Directory 认证用户的名字和姓氏
MVC Get givenname and surname of Azure Active Directory authenticated user
我可以使用以下方式获取经过身份验证的用户的用户名(电子邮件格式):
var autenticateduser = HttpContext.User.Identity.Name;
使用 QuickWatch window 我可以使用以下表达式找到名字和姓氏。有没有更简洁的方法来获取此信息?
(new System.Linq.SystemCore_EnumerableDebugView<System.Security.Claims.Claim>(((System.Security.Claims.ClaimsIdentity)(HttpContext.User.Identity)).Claims)).Items[5]
怎么样
ClaimsPrincipal cp = ClaimsPrincipal.Current;
string welcome = string.Format("Welcome, {0} {1}!", cp.FindFirst(ClaimTypes.GivenName).Value, cp.FindFirst(ClaimTypes.Surname).Value);
通过这种方式您也可以获得非标准声明,您只需要知道密钥的名称,例如可以从 openidconnect YOURDOMAIN/.well-known/openid-configuration JSON 响应中获得。
Hello @User.Claims.Single(a => a.Type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname").Value!
我可以使用以下方式获取经过身份验证的用户的用户名(电子邮件格式):
var autenticateduser = HttpContext.User.Identity.Name;
使用 QuickWatch window 我可以使用以下表达式找到名字和姓氏。有没有更简洁的方法来获取此信息?
(new System.Linq.SystemCore_EnumerableDebugView<System.Security.Claims.Claim>(((System.Security.Claims.ClaimsIdentity)(HttpContext.User.Identity)).Claims)).Items[5]
怎么样
ClaimsPrincipal cp = ClaimsPrincipal.Current;
string welcome = string.Format("Welcome, {0} {1}!", cp.FindFirst(ClaimTypes.GivenName).Value, cp.FindFirst(ClaimTypes.Surname).Value);
通过这种方式您也可以获得非标准声明,您只需要知道密钥的名称,例如可以从 openidconnect YOURDOMAIN/.well-known/openid-configuration JSON 响应中获得。
Hello @User.Claims.Single(a => a.Type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname").Value!