繁体   English   中英

跨应用程序池的SharePoint列表访问

[英]SharePoint List access across Application Pools

我有一个要求,我需要能够从Web前端(WFE)上的应用程序页面访问管理中心中的列表。 我遇到的问题是WFE的应用程序池用户无权访问SharePoint_AdminContent数据库,因此我被拒绝访问,他们都有自己的应用程序池

在日志中显示以下内容:

  • 恢复为流程标识
  • SqlConnection.Open之前的当前用户:名称:SharePointDemo \\ SPContentPool SID:S-1-5-20 ImpersonationLevel:无
  • SqlConnection.Open之后的当前用户:名称:SharePointDemo \\ SPContentPool:S-1-5-20 ImpersonationLevel:无
  • SQL Server实例'SPNSQL'上的数据库'SharePoint_AdminContent_53169fb3-137c-44b2-b90e-961b656e4275'中的用户'SPContentPool'的SQL数据库权限不足。 下面包括来自SQL Server的其他错误信息。 数据库'SharePoint_AdminContent_53169fb3-137c-44b2-b90e-961b656e4275',模式'dbo'的对象'proc_EnumLists'的EXECUTE权限被拒绝。

我尝试使用特权提升运行,也尝试使用Daniel SharePoint的方法( http://daniellarson.spaces.live.com/blog/cns!D3543C5837291E93!1919.entry ),该方法使用SharePoint \\ System用户令牌,但它似乎只能升级为与应用程序池一样高。

我希望可以通过一种简单的方法来模拟Admin Web应用程序的应用程序池,但是仍无法找到一种方法...或者将进程标识更改为具有访问权限的进程标识

任何想法,想法或解决方案都将得到谢意!

菲尔

您应该尝试使用“列表” Web服务访问列表项。 并在连接到Web服务之前设置凭据。

您是否尝试过常规的Windows模拟 您可能应该可以模拟该服务帐户并以这种方式访问​​列表。

问题在于,CA应用程序池和WFE应用程序池很可能在不同的帐户下运行,这是最佳实践,尽管使开发人员感到烦恼。 使用SPSecurity.RunWithElevatedPrivileges可以解决此问题。

提供安全策略允许这样做,您可以为运行WFE Web应用程序的应用程序池提供与管理中心应用程序池相同的凭据。

可以使用以下位置的“服务帐户”屏幕完成此操作:

http:///_admin/FarmCredentialManagement.aspx

如果沿Web服务路线走,您可能希望扮演自己的Web服务角色,以防止通过HTTP进行过多的“聊天”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM