从另一个REST服务的Sharepoint listdata.svc发出读取列表

本文关键字:svc 读取 列表 listdata Sharepoint 另一个 REST 服务 | 更新日期: 2023-09-27 18:25:56

all。

我创建了一个RESTApiController,它尝试调用Sharepoint站点的/''vti_bin/listdata.svc来获取一个或多个Sharepoint列表的内容。

ApiController的web.config使用Windows身份验证,没有模拟。在代码中,我使用System.Net.CredentialCache.DefaultNetworkCredentials作为DataContext.Credentials.

当我使用Visual Studio在本地运行该服务时,ApiController能够毫无问题地调用listdata.svc,并且能够检索列表的全部内容。

然而,当我将ApiController部署到在系统帐户下运行的实际IIS服务器时,对listdata.svc的调用不会检索到任何结果。从我的ApiController日志中可以看到,没有抛出异常的存在。根据日志,列表显示为空(0项)。

我已检查以确保IIS系统帐户能够正确访问Sharepoint网站。

有什么关于行为差异的想法吗?

从另一个REST服务的Sharepoint listdata.svc发出读取列表

解决了这个问题。考虑到我曾经是一名SharePoint网站管理员,这个问题有点尴尬。

我忘记了使用SharePoint,对于一个不相互继承的给定网站,可以同时拥有网站和列表权限。

无论出于什么原因,这个网站对我试图访问的列表有一组不同于一般网站的权限。

所使用的系统帐户具有完全控制的站点权限。但对于有问题的列表,他们没有权限(但其他帐户,比如我自己的帐户,有权限)。这可以解释为什么系统帐户可以连接到网站的列表服务,但列表显示为空。

在授予系统帐户对列表的读取权限后,一切正常。

这里的问题是:如果管理员决定单独授予列表权限,那么仅仅因为帐户具有网站权限并不意味着它适用于网站中的所有列表。

希望以上所有内容都有意义。