Word加载项:获取用于从SharePoint打开文档的用户凭据

时间:2013-01-09 13:50:59

标签: c# sharepoint sharepoint-2010 ms-word add-in

我们正在开发C#和WPF上的Word加载项。

文档从位于其他域中的SharePoint打开,并使用加载项进行处理。 打开文档时,MS Word会要求提供SharePoint域的凭据。

在Word加载项中,我需要检索这些凭据或任何安全令牌,以便与SharePoint进行集成。

当我尝试使用C#中的CredentialsCache时,我获得了本地Windows /域帐户的凭据,但没有获得Sharepoint域帐户的凭据。

我了解Word存储SharePoint的凭据,因为我可以签入/签出并保存而无需重新输入密码。

但是我可以以某种方式从代码中获取这些凭据以访问SharePoint服务而无需重新提示密码吗?

1 个答案:

答案 0 :(得分: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");