我们要构建一个Web应用程序,Dynamics crm客户可以通过该应用程序登录。他们登录后,我们想向他们显示其CRM的实例联系人列表。我们已经实现了Azure B2B身份验证和托管应用程序,但是我不知道如何从已登录客户的crm中检索数据。
任何帮助表示赞赏。
答案 0 :(得分:0)
看看CRM connection string examples。您可以提示登录的用户进行身份验证。它将使用当前通过OAuth登录的用户创建与Common Data Service的新连接。
我想连接到CRM来使用项目的解决方案,因此我习惯通过参考PowerApps samples回购来实现CRM SDK。我的项目使用Azure B2B对用户进行身份验证,我希望同一用户连接到CRM。所以我用了On-Behalf-Of flow。 在为AD应用验证用户身份后,我首先获得了访问令牌。然后,我使用此令牌为目标组织(例如:https://org12345.crm.dynamics.com/)使用UserAssertion获取另一个令牌。您需要添加Registering AD App这样的Dynamics CRM权限。现在,一旦有了目标组织的令牌,就可以像这样使用它来连接到CRM:
Uri serviceUrlDestination = new Uri(orgUrl + @"/xrmservices/2011/organization.svc/web?SdkClientVersion=8.2");
OrganizationWebProxyClient sdkServiceDestination = new OrganizationWebProxyClient(serviceUrlDestination, false);
sdkServiceDestination.HeaderToken = AccessToken;
CrmServiceClient serviceClient = new CrmServiceClient(sdkServiceDestination);
我不知道如何检索已登录用户的联系人列表,因为我主要将其用于解决方案,但是一旦从已登录用户的上下文连接到CRM,我认为您应该能够执行其他操作操作。