2009-08-17 32 views
0

是否可以使用與用於訪問Sharepoint服務器相同的憑據從已從SharePoint Server下載的Excel工作表中執行Web服務調用?如何使用與Sharepoint相同的憑據調用webservice?

我們目前正在開發一個Excel解決方案,它可以在Excel工作表中完成web服務請求。這可以正常工作,但用戶必須登錄至少兩次:一次用於從Sharepoint下載/打開Excel工作表,另一次能夠使用正確的憑據執行Web服務。

Sharepoint服務器和客戶機不在同一個Active Directory域中。因此「System.Security.Principal.WindowsIdentity.GetCurrent()」不是一個選項,因爲這將返回服務器上不存在的用戶。

回答

0

您可以使用VSTO(Visual Studio Tools For Office)創建Excel插件。每次打開Excel並且可以包含按鈕時,該插件都會加載。

要使用Sharepoint的系統帳戶,您必須使用RunWithElevatedPrivileges。這有一些安全隱患! http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spsecurity.runwithelevatedprivileges.aspx

通常,web服務會將登錄用戶憑據考慮在內。 如果不是,您可以隨時使用NetworkCredential類手動創建它們。

System.Net.CredentialCache myCredentials = new System.Net.CredentialCache(); 
NetworkCredential netCred = new NetworkCredential("UserName", "Password"); 
myCredentials.Add(new Uri(myService.Url), "Basic", netCred); 
myService.Credentials = myCredentials; 

//進入您的Web服務方法,在這裏

相關問題