2

我在 WSS 3 中部署了一个自定义 Web 服务。它有两种 Web 方法。

第一个返回加载程序集的版本,而不调用任何 SharePoint 对象。第二个返回有关库的一些基本信息,例如:

var spLibrary = [find library logic];
return spLibrary.Name+"@"+spLibrary.Url;

在客户端应用程序中,我有以下内容:

var service = new WebService1();
service.Url = [url];
service.Credentials = System.Net.CredentialCache.DefaultCredentials;

service.Method1();
service.Method2();

当客户端应用程序在部署 SharePoint 的计算机上运行时,一切正常。

当客户端应用程序在远程计算机上运行(但在同一用户下)时,第一种方法仍然有效,但第二种方法抛出 System.Net.WebException: HTTP 401: Unauthorized。

我试图手动设置凭据(service.Credentials = new System.Net.NetworkCredential(login, password, domain);)但这没有帮助。

我尝试使用类似的场景来调用内置的 SharePoint Web 服务,它们工作得很好: 对不起这个错误......如果没有适当的权限,有些方法不能正常工作。

var service = new GroupsService(); 
service.Url = [url]; 
service.Credentials = System.Net.CredentialCache.DefaultCredentials; 

service.SomeMethod();
4

1 回答 1

3

问题已解决。用于与共享点交互的用户获得了网站集管理员权限,一切正常。

这不是双跳问题。

希望这个经验对其他人有所帮助。

这是MSDN 论坛主题的链接。

于 2009-10-07T11:38:32.787 回答