如何将CrmServiceClient与客户端证书一起使用以对Dynamics进行身份验证

时间:2020-02-21 14:34:54

标签: c# authentication dynamics-crm microsoft-dynamics

我正在尝试使用下面的构造函数使用前提是Dynamics(Customer Engagement)v9.0.9的证书对我的应用程序进行身份验证,但它会不断返回null,没有任何有用的错误,只是“无法登录到Dynamics”

与客户端证书相关的用户是有效的Dynamics System用户,当通过NetworkCredential使用“用户名”和“密码”时,我的应用程序将连接。

https://docs.microsoft.com/en-us/dotnet/api/microsoft.xrm.tooling.connector.crmserviceclient.-ctor?view=dynamics-xrmtooling-ce-9#Microsoft_Xrm_Tooling_Connector_CrmServiceClient__ctor_System_Security_Cryptography_X509Certificates_X509Certificate2_System_Security_Cryptography_X509Certificates_StoreName_System_String_System_Uri_System_Boolean_Microsoft_Xrm_Sdk_Discovery_OrganizationDetail_System_String_System_Uri_System_String_

X509Certificate2 certificate = getCertificate();  

CrmServiceClient crmServiceClient = new CrmServiceClient(certificate, StoreName.Root, "<THUMBNAIL OF CERT>", new Uri("http://something.com"), "<TENANT-NAME>", false, false, null, <CLIENT-ID>, new Uri("http://something.com"), "C://t")

IOrganizationService m_OrgServ =         (IOrganizationService)crmServiceClient.OrganizationWebProxyClient != null ?
(IOrganizationService)crmServiceClient.OrganizationServiceProxy;

我也尝试过从app.config中设置的connectionString获取值

<connectionStrings>
 <add name="connectionToDynamics"
  connectionString="
  AuthType=Certificate;
  url=http://something.com/<TENANT-NAME>;
  thumbprint=<THUMBNAIL OF CERT>;
  AppId=something-dev;
  />

string connectionString = ConfigurationManager.ConnectionStrings[1].ConnectionString
CrmServiceClient crmServiceClient = new CrmServiceClient(certificateString)

在文档中没有使用x509Certificate连接到Dynamics内部部署的有效示例,并且在寻找任何其他资源方面都很困难。

有什么想法吗?

0 个答案:

没有答案