我正在尝试对我们的在线Dynamics CRM进行身份验证,以使用可用的API .
关于这样做的唯一官方文档我可以找到:https://docs.microsoft.com/en-us/dynamics365/customer-engagement/developer/connect-customer-engagement-web-services-using-oauth然而这使用'AquireToken',它在ADAL V3中不再存在,并且已被'AcquireTokenAsync'替换 .
这是我第一次处理ADAL并尝试进行身份验证,之前只处理过'HttpWebRequest'自定义API .
我目前只是尝试运行代码而没有任何错误,使用docs.microsoft.com上的内容我尝试将'AcquireToken'更改为'AcquireTokenAsync' .
public void authenticateToCRM()
{
// TODO Substitute your correct CRM root service address,
string resource = "https://qqqqqqqqq.crm4.dynamics.com";
// TODO Substitute your app registration values that can be obtained after you
// register the app in Active Directory on the Microsoft Azure portal.
string clientId = "******-****-*******-*****-****";
string redirectUrl = "https://qqqqqqqqq.azurewebsites.net";
// Authenticate the registered application with Azure Active Directory.
AuthenticationContext authContext = new AuthenticationContext("https://login.windows.net/common", false);
AuthenticationResult result = authContext.AcquireTokenAsync(resource, clientId, new Uri(redirectUrl));
}
这导致'AcquireToken'中'clientId'字符串变量出错,错误是......
“参数2:无法从'string'转换为'Microsoft.IdentityModel.Clients.ActiveDirectory.ClientCredentials”
和第三个变量'new Uri(redirectUrl)'的错误,...
“参数3:无法从'System.Uri'转换为'Microsoft.IdentityModel.Clients.ActiveDirectory.UserAssertion”
查看'AuthenticationContext'类的文档和'AcquireTokenAsync'的用法很多都有一个字符串作为第二个参数:https://docs.microsoft.com/en-us/dotnet/api/microsoft.identitymodel.clients.activedirectory.authenticationcontext?view=azure-dotnet
我不知道如何将ms docs中显示的'AcquireToken'转换为使用'AcquireTokenAsync'进行身份验证的用法
1 回答