Word插件:获取从SharePoint打开文档时使用的用户凭据

4
我们正在使用C#和WPF开发Word插件。这些文档是从生存在另一个域中的SharePoint打开,并且使用插件进行处理。 当打开文档时,MS Word会要求输入SharePoint域的凭据。
在Word插件中,我需要检索这些凭据或任何安全令牌,以与SharePoint交互。 当我尝试使用C#的CredentialsCache时,我只能获取本地Windows / 域帐户的凭据,而无法获取Sharepoint域帐户的凭据。
我知道Word保存了与SharePoint相关的凭据,因为我可以在不重新输入密码的情况下进行签入/签出和保存操作。
但是我是否能够通过代码获取这些凭据以访问SharePoint服务而无需重新提示输入密码呢?
1个回答

1
如果被调用的 Web 服务使用 Windows 集成安全性,则从当前 Windows 身份创建 NetworkCredential 应足以允许 Web 服务使用当前用户的 Windows 登录。但是,如果 Web 服务使用不同的安全模型,则没有办法从当前身份提取用户密码...这本身就是不安全的,允许您(开发人员)窃取用户密码。如果您不希望用户反复提供密码,您可能需要为用户提供某种方式来提供其密码,并将其保留在某个安全缓存中。
编辑:要获取当前身份的凭据,请使用以下内容:
Uri uri = new Uri("http://tempuri.org/");
ICredentials credentials = CredentialCache.DefaultCredentials;
NetworkCredential credential = credentials.GetCredential(uri, "Basic");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接