我正在开发一个应用程序,以通过 动态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");
}
}
但出现以下错误:
答案 0 :(得分:1)
该错误是由您使用的ADAL版本以及如何生成授权URL引起的。
如果您将Microsoft.IdentityModel.Clients.ActiveDirectory
库版本降级为3.9.18,则可以毫无问题地进行连接。有一个open bug in GitHub,您可以在其中跟踪其进度或评论以添加更多信息,以获取针对其的确定性解决方案。