我在简单的 .NET Core 控制台应用程序中使用新的 Azure.Identity 包 ( https://learn.microsoft.com/en-us/dotnet/api/overview/azure/identity-readme ) 来登录 Azure,例如:
var credential = new DefaultAzureCredential()
工作正常,但现在我想获取当前登录用户的姓名、电子邮件等。有谁知道如何实现这一目标吗?
最佳答案
您可以通过 GetTokenAsync
获得 token 首先,通过解码 access token 获取用户的用户名(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;
关于c# - 从 Azure 身份获取用户名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66543977/