gpt4 book ai didi

c# - 如何在没有提示的情况下使用ADAL,NetStandard和Azure AD对CRM Dynamics Online Web服务进行身份验证

转载 作者:行者123 更新时间:2023-11-30 21:41:37 24 4
gpt4 key购买 nike

我目前正在尝试创建Xamarin应用,以便从Dynamics 365在线实例获取一些信息。在NetStandard(v1.6)库中逐出了用AD进行身份验证并访问CRM api的代码。

我使用以下NuGets:


Microsoft.IdentityModel.Clients.ActiveDirectory(3.13.9)
NETStandard.Library(1.6.1)


我按照以下教程进行操作,以便将AD与我的Dynamics实例链接:https://nishantrana.me/2016/11/13/register-a-dynamics-365-app-with-azure-active-directory/

这是我的ActiveDirectory帮助器:

public static class ADHelper
{

public async static Task<AuthenticationResult> GetAuthAsync(Uri uri, ClientCredential creditential)
{
AuthenticationParameters ap = await AuthenticationParameters.CreateFromResourceUrlAsync(uri);

String authorityUrl = ap.Authority;
String resourceUrl = ap.Resource;

AuthenticationResult result = null;

AuthenticationContext authContext = new AuthenticationContext(authorityUrl, false);
result = await authContext.AcquireTokenAsync(resourceUrl, creditential);
return result;
}
}


还有我的CRM API客户端:

public class CRMClient
{
private AuthenticationResult Auth { get; set; }
private Uri baseUri { get; set; }

public CRMClient(Uri uri, ClientCredential creditential)
{
baseUri = uri;
Auth = ADHelper.GetAuthAsync(uri, creditential).Result;
}

public void getObject()
{
using (HttpClient client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", Auth.AccessToken);
client.Timeout = new TimeSpan(0, 2, 0);
client.BaseAddress = baseUri;
HttpResponseMessage message = client.GetAsync("/accounts").Result;
String content = message.Content.ReadAsStringAsync().Result;
}
}


用于CRMClient构造函数的参数:


https://[my_crm_instance_Url]/api/data/v8.2/ =>数据OData端点
ClientCredential(AppId,AppKey)=>作为凭据


Azure AD给了我一个令牌,但是UserInfo,TenantId和idToken都是 null(这可能是导致我出现问题的一部分)。

当前,返回的内容是HTML office 365登录页面,而不是我想要获取的数据。

有人可以帮我吗?

最佳答案

关于c# - 如何在没有提示的情况下使用ADAL,NetStandard和Azure AD对CRM Dynamics Online Web服务进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43120847/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com