我有一个要求,我需要能够从位于我的 Web 前端 (WFE) 上的应用程序页面访问位于管理中心的列表。我遇到的问题是我的 WFE 的应用程序池用户无权访问 SharePoint_AdminContent 数据库,因此我的访问被拒绝,他们都有自己的应用程序池
在日志中显示以下内容:
- Reverting to process identity
- Current user before SqlConnection.Open: Name: SharePointDemo\SPContentPool SID: S-1-5-20 ImpersonationLevel: None
- Current user after SqlConnection.Open: Name: SharePointDemo\SPContentPool: S-1-5-20 ImpersonationLevel: None
- Insufficient SQL database permissions for user 'SPContentPool' in database 'SharePoint_AdminContent_53169fb3-137c-44b2-b90e-961b656e4275' on SQL Server instance 'SPNSQL'. Additional error information from SQL Server is included below. The EXECUTE permission was denied on the object 'proc_EnumLists', database 'SharePoint_AdminContent_53169fb3-137c-44b2-b90e-961b656e4275', schema 'dbo'.
我已尝试使用提升的权限运行以及尝试使用 SharePoint\System 用户 token 的 Daniel Larsons 方法 ( http://daniellarson.spaces.live.com/blog/cns!D3543C5837291E93!1919.entry ),但它似乎只提升到与应用程序池一样高。
我希望有一种简单的方法来模拟管理 Web 应用程序的应用程序池,但一直无法找到这样做的方法......或者将进程标识更改为具有访问权限的进程标识
感谢收到任何想法、想法或解决方案!
菲尔
最佳答案
您应该尝试使用列表 Web 服务来访问列表项。并在连接到 Web 服务之前设置凭据。
关于c# - 跨应用程序池的 SharePoint 列表访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/868155/