Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Word加载项:获取用于从SharePoint打开文档的用户凭据_C#_Sharepoint_Sharepoint 2010_Ms Word_Add In - Fatal编程技术网

C# 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的凭据,因为我可以签入/签出并保存,而无需重新输

我们正在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");