簡體   English   中英

如何使用與Sharepoint相同的憑據調用Web服務?

[英]How to call webservice using same credentials as Sharepoint?

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

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

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

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

若要使用Sharepoint的系統帳戶,必須使用RunWithElevatedPrivileges。 這有一些安全隱患! http://msdn.microsoft.com/zh-CN/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服務方法

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM