c# - 从 Azure Identity 获取用户名
问题描述
我在一个简单的 .NET Core 控制台应用程序中使用新的 Azure.Identity 包 ( https://docs.microsoft.com/en-us/dotnet/api/overview/azure/identity-readme ) 登录到 Azure,例如:
var credential = new DefaultAzureCredential()
工作正常,但现在我想获取当前登录用户的姓名、电子邮件等。有谁知道如何做到这一点?
解决方案
您可以GetTokenAsync
先获取令牌,然后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;
推荐阅读
- javascript - ReactJS:React-Router 将值传递到另一个页面
- javascript - 如何实现通用的反应原生背景?
- node.js - imageMagick 在套接字实例上失败
- state-machine - 用 2 个变量构建状态机
- javascript - 获取请求失败,状态为 403:snack.expo.io 上未定义
- python - 如何使用交互式图表将 jupyter notebook 导出为 html?
- php - PHP - htmlentities - 捷克语问题
- python-3.x - 我可以使用存储在 Docker 映像内的 GCS 存储桶中的 Python 模块吗?
- django - 翻译 django-allauth
- css - Bootstrap 是否默认添加水平间距?如果是这样,有没有办法覆盖这个设置?