C# Word加载项:获取用于从SharePoint打开文档的用户凭据
我们正在C#和WPF上开发一个Word插件 这些文档从位于另一个域中的SharePoint打开,并使用加载项进行处理。 打开文档时,MS Word会要求提供SharePoint域的凭据 在Word加载项中,我需要检索这些凭据或任何安全令牌才能与SharePoint进行交互 当我尝试从C#使用CredentialsCache时,我会获取本地windows/域帐户的凭据,但不会获取Sharepoint域帐户的凭据 我知道Word存储SharePoint的凭据,因为我可以签入/签出并保存,而无需重新输入密码C# Word加载项:获取用于从SharePoint打开文档的用户凭据,c#,sharepoint,sharepoint-2010,ms-word,add-in,C#,Sharepoint,Sharepoint 2010,Ms Word,Add In,我们正在C#和WPF上开发一个Word插件 这些文档从位于另一个域中的SharePoint打开,并使用加载项进行处理。 打开文档时,MS Word会要求提供SharePoint域的凭据 在Word加载项中,我需要检索这些凭据或任何安全令牌才能与SharePoint进行交互 当我尝试从C#使用CredentialsCache时,我会获取本地windows/域帐户的凭据,但不会获取Sharepoint域帐户的凭据 我知道Word存储SharePoint的凭据,因为我可以签入/签出并保存,而无需重新输
但是,我是否可以从代码中获取这些凭据来访问SharePoint services,而无需重新提示密码?如果正在调用的web服务使用windows集成安全性,则从当前windows标识创建网络凭据应足以允许web服务使用当前用户的windows登录。但是,如果web服务使用不同的安全模型,则无法从当前身份提取用户密码……这本身就是不安全的,允许开发人员窃取用户密码。您可能需要为您的用户提供某种方式来提供他们的密码,如果您不想让他们重复提供密码,则需要将其保存在安全缓存中 编辑:要获取当前标识的凭据,请使用以下命令:
Uri uri = new Uri("http://tempuri.org/");
ICredentials credentials = CredentialCache.DefaultCredentials;
NetworkCredential credential = credentials.GetCredential(uri, "Basic");