c# - 我收到以下错误“AADSTS90002 未找到租户授权”。
问题描述
我正在开发一个应用程序以通过 Dynamics 365 的 OAuth 获取数据,使用以下示例执行此操作
https://www.youtube.com/watch?v=Td7Bk3IXJ9s
public static async Task Auth()
{
string URL = "https://grupolg.api.crm.dynamics.com/api/data/v9.1/";
AuthenticationParameters API = AuthenticationParameters.CreateFromResourceUrlAsync(new Uri(URL)).Result;
//APP KEY, SECRET KEY
ClientCredential Creds = new ClientCredential("hidden for security", "hidden for security");
AuthenticationContext authContext = new AuthenticationContext(API.Authority);
string token = authContext.AcquireTokenAsync(API.Resource, Creds).Result.AccessToken;
using (HttpClient httpClient = new HttpClient())
{
httpClient.Timeout = new TimeSpan(0,2,0);
httpClient.DefaultRequestHeaders.Authorization =
new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer",token);
HttpResponseMessage res = await httpClient.GetAsync(URL+"/contacts$top=1");
}
}
但我收到以下错误:
解决方案
该错误是由您使用的 ADAL 版本以及授权 URL 的生成方式引起的。
如果您将Microsoft.IdentityModel.Clients.ActiveDirectory
库版本降级到 3.9.18,您将能够毫无问题地连接。GitHub中有一个未解决的错误,您可以在其中跟踪其进度或评论以添加更多信息以获得最终修复。
推荐阅读
- javascript - 自动注册
- javascript - 是否可以使用 Javascript 中的 GitHub-API 邀请组织中的 GitHub 用户?
- android - 通知未显示,因为服务或警报管理器已被终止
- python - TypeError:“模块”对象在 Playsound 模块中不可调用
- angular - 角度 5 的图像上传加载程序
- c - 在堆中搜索元素后删除元素的分段错误
- javascript - 编写 sum_pairs 函数的更简单方法
- windows - 如何将 Windows 更新到 17763
- java - 如何从代码中的 *.ini 文件中获取 JVM 参数?
- docker - 从 debian:stretch 映像运行 docker 容器不起作用