我们使用Azure Active Directory验证我们的MVC应用程序,但我们在ClaimsPrincipal中获得的唯一信息是名称和组成员身份。
我们还需要访问给定姓名和姓氏的用户。关于我们如何解决这个问题的任何指示?
答案 0 :(得分:1)
OpenID Connect引入了一个id_token(这是一个JWT)。
查看documentation,id_token包含一些可能匹配的声明:
因此,在您的控制器中,您可以访问这些声明:
using System.Security.Claims;
...
var identity = (ClaimsIdentity)User.Identity;
var lastName = identity.Claims.First(
c => c.Type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname").Value;
var firstName = identity.Claims.First(
c => c.Type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname").Value;
var displayName = identity.Claims.First(c => c.Type == "name").Value;
这些声明对应于Azure AD中的名字,姓氏和显示名称: