【问题标题】:How to call webservice using same credentials as Sharepoint?如何使用与 Sharepoint 相同的凭据调用 Web 服务?
【发布时间】:2009-08-17 16:13:19
【问题描述】:

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

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

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

【问题讨论】:

    标签: c# sharepoint excel web-services


    【解决方案1】:

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

    要使用 Sharepoint 的系统帐户,您必须使用 RunWithElevatedPrivileges。这有一些安全隐患! http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spsecurity.runwithelevatedprivileges.aspx

    通常,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 服务方法

    【讨论】:

      猜你喜欢
      • 2023-04-09
      • 1970-01-01
      • 1970-01-01
      • 2013-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多