2013-01-09 79 views
4

我們正在開發C#和WPF上的Word加載項。Word加載項:獲取用於從SharePoint打開文檔的用戶憑據

文檔從SharePoint打開,該文檔位於另一個域中,並使用加載項進行處理。 打開文檔時,MS Word會要求輸入SharePoint域的憑據。

在Word加載項中,我需要檢索這些憑據或任何安全令牌以與SharePoint進行交互操作。

當我嘗試從C#使用CredentialsCache時,我獲取本地Windows /域帳戶的憑據,但不是Sharepoint域帳戶。

據我所知,Word存儲SharePoint的憑據,因爲我可以簽入/簽出並保存而無需重新輸入密碼。

但我可以以某種方式從代碼中獲取這些憑據以訪問SharePoint服務而無需重新提示密碼嗎?

回答

1

如果被調用的Web服務使用Windows集成安全性,則從當前WindowsIdentity創建NetworkCredential應該足以允許Web服務使用當前用戶的Windows登錄。但是,如果Web服務使用不同的安全模型,則無法從當前身份提取用戶密碼......本身並不安全,允許開發人員竊取用戶密碼。您可能需要爲您的用戶提供某種方式來提供其密碼,並且如果您不希望他們必須重複提供密碼,請將其保存在某個安全緩存中。

編輯:爲了得到當前的身份憑證,使用以下命令:

Uri uri = new Uri("http://tempuri.org/"); 
ICredentials credentials = CredentialCache.DefaultCredentials; 
NetworkCredential credential = credentials.GetCredential(uri, "Basic");