我做了一個訪問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