我正在尝试在 InfoPath 表单的代码隐藏中使用标准 SharePoint Web 服务 GetWeb。该表单作为工作流的一部分托管,因此使用 Forms Services 加载到浏览器中。因此,它在登录到 SharePoint 的当前用户的凭据上运行。如果用户在站点的 Owner 组中,则 Web 服务运行,但如果用户在 Contributor 或 Reader 组中,则会给出“HTTP 401 Unauthorized”错误。在此之后我还使用了 GetLists Web 服务,但只要用户具有 Reader 权限,它就会运行。
我只使用 GetWeb 调用来获取 GetList 调用所需的 WebId 作为参数。我通过将 WebId 传递到表单而不是让表单查找它来解决我的权限问题。所以现在一切都好。
但是,我想知道为什么 GetWeb 需要更高的权限以及如何/是否可以控制这些权限。我没有找到任何关于不同开箱即用 Web 服务所需权限的文档,更不用说您如何更改它们了。
[注意] 我没有使用数据连接文件是有原因的,但还是感谢您提出建议。