我有一个.NET Web应用程序,我可以从中调用OrganizationService并在CRM中执行一些更新。这是我用来获取服务引用的代码:
public IOrganizationService GetOrganizationService() {
try {
IServiceConfiguration<IOrganizationService> orgConfigInfo = ServiceConfigurationFactory.CreateConfiguration<IOrganizationService>( new Uri( "http://crm:5555/CRM/XRMServices/2011/Organization.svc" ) );
AuthenticationCredentials authCredentials = new AuthenticationCredentials();
authCredentials.ClientCredentials.Windows.ClientCredential = new System.Net.NetworkCredential( "andy", "pass123!", "MyDomain" );
using ( OrganizationServiceProxy organizationProxy = new OrganizationServiceProxy( orgConfigInfo, authCredentials.ClientCredentials ) ) {
organizationProxy.EnableProxyTypes();
IOrganizationService service = (IOrganizationService) organizationProxy;
return service;
}
}
catch ( Exception e ) {
return null;
}
}
只要应用程序与CRM位于同一域中,就可以正常工作。当我将连接信息(URI,用户名,密码,域)更改为指向其他域中的CRM系统时,我得到了身份验证失败的异常。我能够在部署了我的Web应用程序的计算机上使用相同帐户从浏览器登录CRM系统,以便在两个域之间建立连接。
我怀疑某些凭据的域名部分被忽略了 - 我已经测试过更改域名,同时仍然将应用和CRM放在同一个域中并且身份验证成功甚至使用错误的域名。
如何使用AD身份验证从其他域正确连接到CRM系统?