使用MS CRM SDK和STS的默认凭据

时间:2017-06-02 07:48:58

标签: c# sdk dynamics-crm adfs dynamics-crm-2016

我正在编写一个小型桌面应用程序,该应用程序挂钩到我们公司的电话系统,并且在来电时搜索DDI对联系人实体,然后如果找到匹配要求则打开用户的记录。 出于安全原因,我们不希望在配置文件中指定用户名和密码,而是使用登录用户的默认凭据。我的问题是我的代码在我们的开发服务器上工作,它不使用ADFS STS,但它在我们的实时服务器上运行,它使用ADFS STS。我的代码如下。如果我使用应用程序设置中的用户名和密码,它可以与STS一起使用但是将它们注释掉并使用CredentialCache会导致以下错误。

IOrganizationService _service;
OrganizationServiceProxy _serviceProxy;
ClientCredentials clientCredentials = new ClientCredentials();
//clientCredentials.UserName.UserName = ConfigurationManager.AppSettings["username"];
//clientCredentials.UserName.Password = ConfigurationManager.AppSettings["password"];
clientCredentials.Windows.ClientCredential = (NetworkCredential)CredentialCache.DefaultCredentials;
Uri organisationUri = new Uri(String.Format(ConfigurationManager.AppSettings["organisationUri"] + "XRMServices/2011/Organization.svc"));

ServicePointManager.ServerCertificateValidationCallback = AcceptAllCertificatePolicy;
IServiceConfiguration<IOrganizationService> serviceConfiguration = ServiceConfigurationFactory.CreateConfiguration<IOrganizationService>(organisationUri);
serviceConfiguration.Authenticate(clientCredentials);

但是,使用默认凭据会出现错误

  

{“在处理邮件中的安全令牌时发生错误。”}

0 个答案:

没有答案