Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.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# 如何使用与Sharepoint相同的凭据调用webservice?_C#_Sharepoint_Excel_Web Services - Fatal编程技术网

C# 如何使用与Sharepoint相同的凭据调用webservice?

C# 如何使用与Sharepoint相同的凭据调用webservice?,c#,sharepoint,excel,web-services,C#,Sharepoint,Excel,Web Services,是否可以在从sharepoint服务器下载的Excel工作表中使用与访问sharepoint服务器相同的凭据进行webservice调用 我们目前正在开发一个Excel解决方案,它在Excel工作表中执行webservice请求。这很好,但用户必须至少登录两次:一次用于从Sharepoint下载/打开Excel工作表,另一次用于使用正确的凭据执行Web服务 Sharepoint服务器和客户端计算机不在同一Active Directory域中。因此,“System.Security.Princip

是否可以在从sharepoint服务器下载的Excel工作表中使用与访问sharepoint服务器相同的凭据进行webservice调用

我们目前正在开发一个Excel解决方案,它在Excel工作表中执行webservice请求。这很好,但用户必须至少登录两次:一次用于从Sharepoint下载/打开Excel工作表,另一次用于使用正确的凭据执行Web服务

Sharepoint服务器和客户端计算机不在同一Active Directory域中。因此,“System.Security.Principal.WindowsIdentity.GetCurrent()”不是选项,因为这将返回服务器上不存在的用户。

您可以使用VSTO(Visual Studio Tools For Office)创建Excel插件。插件会在每次打开Excel时加载,并且可以包含按钮等

若要使用Sharepoint的系统帐户,必须使用RunWithElevatedPrivileges。这有一些安全隐患!

通常,Web服务会考虑登录的用户凭据。 如果不是,则始终可以使用NetworkCredential类手动创建它们

System.Net.CredentialCache myCredentials = new System.Net.CredentialCache();
NetworkCredential netCred = new NetworkCredential("UserName", "Password");
myCredentials.Add(new Uri(myService.Url), "Basic", netCred);
myService.Credentials = myCredentials;
//在此处访问您的Web服务方法