c# - 从 Azure 身份获取用户名

标签 c# azure authentication

我在简单的 .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/

相关文章:

c# - WPF - 内容部分控件

c# - 无法将 DateTime 隐式转换为 Timespan

azure - 找不到授予管理员同意

java - 如何为 Tomcat 设置透明的 kerberos 身份验证?

php 数据库帮助,数据库托管在与 Web 主机不同的服务器上

c# - C#中的默认方法参数

c# - 如何从应用程序获取日期/约会到 Windows Phone 日历中?

sql-server - Powershell Invoke-Sqlcmd 命中错误的数据库 - 系统,为什么?

c# - Azure管理客户端不返回任何资源组

python - Flask-login 不重定向到上一页