微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

这些文档是从位于另一个域中的SharePoint打开的,并使用加载项进行处理.
打开文档时,MS Word会要求提供SharePoint域的凭据.

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

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

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

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

解决方法

如果被调用的Web服务使用Windows集成安全性,则从当前WindowsIdentity创建NetworkCredential应足以允许Web服务使用当前用户Windows登录.但是,如果Web服务使用不同的安全模型,则无法从当前标识中提取用户密码……这本身就不安全,允许您(开发人员)窃取您的用户密码.您可能需要为用户提供一些提供密码方法,并且如果您不希望他们不得不重复提供密码,请将其保存在某个安全缓存中.

编辑:要获取当前标识的凭据,请使用以下命令:

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐