c# - 从 Web API 调用 Microsoft 图形时出现无效令牌错误
问题描述
我需要做的是从 C# Web API 调用 Microsoft graph。这基本上是我的方法的样子:
var clientCredential = new ClientCredential(clientId, clientSecret);
AuthenticationContext context = new AuthenticationContext(authority);
AuthenticationResult authenticationResult = context.AcquireToken(clientId, clientCredential);
if (authenticationResult == null)
{
throw new InvalidOperationException("Failed to obtain the token");
}
return authenticationResult;
我通过这个电话收到的是:
然后我的想法是调用 microsoft graph 传递这个令牌(我什至不能 100% 确定这是实现隐式流的正确方法)......但之后我收到“无效令牌”错误。
谁能告诉我我在这里做错了什么?十分感谢!
解决方案
您的问题是您获取令牌的方式。
这应该是:
context.AcquireToken("https://graph.microsoft.com", clientCredential);
第一个参数是您想要令牌的 API 的资源 URI。
此外,这不是隐式流程,它是客户端凭据流程,应用程序使用应用程序权限访问 API 作为其自身。
推荐阅读
- angular7 - 在angular7中创建标签的困难
- javascript - ngx-datatable 奇怪的行为(行和像素化字体的黑色背景)
- php - 如何添加宽度以扩展表格中的以下文本
- apache-spark - 将多个系统属性传递给 spark-submit
- visual-studio - Visual Studio 2017 选项:每个项目使用托管兼容模式
- linux - 在 Linux 中,如何使用 ssh 和期望在远程服务器中监视 shell 脚本的执行进度
- haskell - HXT 上的模式匹配无法按预期工作
- javascript - 如何在Angular中以字符串格式获取当前月份和年份?
- angular - 有条件的重定向到子路由
- python - 在 Python 中将列表列表写入 csv