4

我们正在 C# 和 WPF 上开发 Word 插件。

这些文档从位于另一个域中的 SharePoint 打开,并使用加载项进行处理。打开文档时,MS Word 会询问 SharePoint 域的凭据。

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

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

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

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

4

1 回答 1

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");
于 2013-02-11T15:41:27.517 回答