我们正在开发C#和
WPF的Word加载项.
这些文档是从位于另一个域中的SharePoint打开的,并使用加载项进行处理.
打开文档时,MS Word会要求提供SharePoint域的凭据.
在Word加载项中,我需要检索这些凭据或任何安全令牌,以便与SharePoint进行集成.
当我尝试使用C#中的CredentialsCache时,我获得了本地Windows /域帐户的凭据,但没有获得Sharepoint域帐户的凭据.
我了解Word存储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] 举报,一经查实,本站将立刻删除。