我做了一个访问CRM的Web服务的应用程序。问题是,当我将dll部署到Sharepoint服务器时,它返回了未经授权的401错误。显然System.Net.CredentialCache.DefaultCredentials没有工作(我的怀疑)。这是代码。访问CRM/Sharepoint Web服务中的DefaultCredentials
CrmSdk.CrmAuthenticationToken token = new CrmSdk.CrmAuthenticationToken();
token.AuthenticationType = AuthenticationType.AD;
token.OrganizationName = ORGANIZATION_NAME;
CrmService service = new CrmService();
service.Url = "http://crmserver:5555/mscrmservices/2007/crmservice.asmx";
service.CrmAuthenticationTokenValue = token;
service.PreAuthenticate = true;
service.Credentials = System.Net.CredentialCache.DefaultCredentials;
反之亦然。
当我做了访问Sharepoint的web服务(编码插件)并将其部署到CRM服务器的应用程序。它无法访问Sharepoint的Web服务。未经授权的错误。代码如下:
Lists listService = new Lists();
listService.PreAuthenticate = true;
listService.Credentials = System.Net.CredentialCache.DefaultCredentials;
listService.Url = "http://sharepointserver/webname/_vti_bin/Lists.asmx";
我的CRM服务器和Sharepoint服务器位于同一个域中。
对于这两个代码,如果我将凭证部分更改为类似这样的东西,然后将其部署到服务器上,它可以运行。
service.Credentials = new NetworkCredential("username", "password", "domain");
不过,我不想这样做,因为它会在代码中显示用户的密码。任何人都可以帮我吗?
两台服务器中的IIS都不允许匿名访问,它使用集成Windows身份验证。
谢谢
从我的本地计算机上,我可以访问CRM Web服务或SharePoint Web服务。我想我是被授权的,因为DefaultCredentials发送了我的凭据,其密码保存在“存储的用户名和密码”(控制面板>用户帐户>选项卡高级>管理密码) 这样,我不必须键入:
service.Credentials = new NetworkCredential("username", "password", "domain");
和我的本地comp的DefaultCredentials被授权访问Web服务。
我试图在访问CRM Web服务的Sharepoint服务器上实现此功能。和..tadaa ..它不会工作。哈哈哈..
我们可以向服务器中的DefaultCredentials注入凭证吗?
我想做的最后一件事是硬编码useraccount(如上面的代码)
嗯..我已经检查过,服务器使用Kerberos身份验证。 任何其他选项或意见? :D 无论如何谢谢:D – cyrene 2009-02-03 07:00:54