1

我有一个要求,我需要能够从位于我的 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 的其他错误信息。对象“proc_EnumLists”、数据库“SharePoint_AdminContent_53169fb3-137c-44b2-b90e-961b656e4275”、架构“dbo”的执行权限被拒绝。

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

我希望有一种简单的方法来模拟 Admin Web 应用程序的应用程序池,但一直无法找到这样做的方法......或者将进程身份更改为具有访问权限的身份

感谢您收到任何想法、想法或解决方案!

菲尔

4

3 回答 3

6

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

于 2009-05-15T12:22:26.610 回答
1

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

于 2009-05-15T14:16:40.563 回答
1

问题是 CA 应用程序池和 WFE 应用程序池很可能在不同的帐户下运行,这是最佳实践,尽管当您是开发人员时很烦人。使用 SPSecurity.RunWithElevatedPrivileges 可以解决任何提升权限的问题。

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

这可以使用以下位置的服务帐户屏幕来完成:

http:///_admin/FarmCredentialManagement.aspx

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

于 2009-06-04T11:19:12.067 回答