代码之家  ›  专栏  ›  技术社区  ›  Saab

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

  •  0
  • Saab  · 技术社区  · 16 年前

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

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

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

    1 回复  |  直到 16 年前
        1
  •  0
  •   Wout    16 年前

    可以使用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服务方法