Web API快速入门样本

时间:2019-06-04 10:24:45

标签: c# dynamics-365

我正在与Dynamics 365集成并遵循Web API Sample (C#)。在这种情况下,我想了解如何处理示例中的两个问题。

首先,该示例使用了Microsoft.IdentityModel.Clients.ActiveDirectory包的旧版本,这说明这是因为:

  

此示例取决于传递用户凭据的能力而无需单独的Azure登录对话框,该对话框在该库的3.x版本中不可用。

第二,该示例使用来自Microsoft的此硬编码的clientId:

// Azure Active Directory registered app clientid for Microsoft samples
string clientId = "51f81489-12ee-4a9e-aaae-a2591f45987d";

鉴于我正在使用Office365帐户,而根本看不到Azure如何适应情况,在没有上述问题的情况下与Dynamics365实现连接的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

使用C#进行Dynamics 365扩展的快速方法是使用SDK,通过NuGet(XrmTooling)可以使用此方法,您可以使用connection string代替Azure AD提供的客户端ID和密钥,这是使用WhoAmIRequest

的代码示例
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

var urlMask = "AuthType=Office365;Username={1}; Password={2};Url={0};RequireNewInstance=True";
var fullUrl = string.Format(urlMask, url, user, pass);

var conn = new CrmServiceClient(fullUrl);
var _orgService = conn.OrganizationWebProxyClient ?? (IOrganizationService)conn.OrganizationServiceProxy;

WhoAmIRequest req = new WhoAmIResquest();
WhoAmIResponse resp = _orgService.Execute(req) as WhoAmIResponse;

Console.Write(resp.UserId);
相关问题