C# 从Azure Identity获取用户名
我正在一个简单的.NET核心控制台应用程序中使用新的Azure.Identity包()登录Azure,例如:C# 从Azure Identity获取用户名,c#,azure,authentication,C#,Azure,Authentication,我正在一个简单的.NET核心控制台应用程序中使用新的Azure.Identity包()登录Azure,例如: var credential = new DefaultAzureCredential() 工作正常,但现在我想获取当前登录用户的姓名、电子邮件等。有人知道如何做到这一点吗?您可以先使用获取令牌,然后通过解码获取用户的用户名(upn) 您可以首先使用获取令牌,然后通过解码获取用户的用户名(upn) 在我的特定场景中,令牌中没有“upn”声明。但这种方法对于解决问题仍然非常有用。在我的特
var credential = new DefaultAzureCredential()
工作正常,但现在我想获取当前登录用户的姓名、电子邮件等。有人知道如何做到这一点吗?您可以先使用获取令牌,然后通过解码获取用户的用户名(upn
)
您可以首先使用获取令牌,然后通过解码获取用户的用户名(upn
)
在我的特定场景中,令牌中没有“upn”声明。但这种方法对于解决问题仍然非常有用。在我的特定场景中,令牌中没有“upn”声明。但这种方法对于解决这个问题仍然非常有用。
var credential = new DefaultAzureCredential();
string[] scopes = new string[] { "https://graph.microsoft.com/.default" };
var token = await credential.GetTokenAsync(new Azure.Core.TokenRequestContext(scopes));
var handler = new JwtSecurityTokenHandler();
var jsonToken = handler.ReadToken(token.Token) as JwtSecurityToken;
var upn = jsonToken.Claims.First(c => c.Type == "upn").Value;