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

C# 跨应用程序池的SharePoint列表访问,c#,sharepoint,web-applications,application-pool,elevated-privileges,C#,Sharepoint,Web Applications,Application Pool,Elevated Privileges,我有一个要求,我需要能够访问一个列表,它位于中央管理局从一个应用程序页面,它位于我的网络前端(WFE)。我遇到的问题是,我的WFE的应用程序池用户没有访问SharePoint\u AdminContent数据库的权限,因此我被拒绝访问,他们都有自己的应用程序池 日志中显示了以下内容: 恢复到进程标识 SqlConnection之前的当前用户。打开:名称: SharePointDemo\SPContentPool SID: S-1-5-20模拟级别:无 SqlConnection之后的当前用户。

我有一个要求,我需要能够访问一个列表,它位于中央管理局从一个应用程序页面,它位于我的网络前端(WFE)。我遇到的问题是,我的WFE的应用程序池用户没有访问SharePoint\u AdminContent数据库的权限,因此我被拒绝访问,他们都有自己的应用程序池

日志中显示了以下内容:

  • 恢复到进程标识
  • SqlConnection之前的当前用户。打开:名称: SharePointDemo\SPContentPool SID: S-1-5-20模拟级别:无
  • SqlConnection之后的当前用户。打开:名称: SharePointDemo\SPContentPool:S-1-5-20 模拟级别:无
  • 用户“SPContentPool”的SQL数据库权限不足 在数据库中 SQL Server实例“SPNSQL”上的“SharePoint_AdminContent_53169fb3-137c-44b2-b90e-961b656e4275”。 来自SQL的其他错误信息 服务器包括在下面。执行 对该对象的权限被拒绝 “进程枚举列表”,数据库 “SharePoint_AdminContent_53169fb3-137c-44b2-b90e-961b656e4275”, 模式“dbo”
我尝试过使用提升权限运行,也尝试过使用SharePoint\System用户令牌的Daniel Larsons方法(),但它似乎只提升到应用程序池的高度

我希望有一个简单的方法来模拟管理Web应用程序的应用程序池,但一直无法找到这样做的方法。。。或者将进程标识更改为具有访问权限的标识

感谢您接受任何想法、想法或解决方案


Phill

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

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

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

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

问题是CA应用程序池和WFE应用程序池很可能在不同的帐户下运行,这是最佳做法,尽管在您是开发人员时很烦人。使用SPSecurity.RunWithElevatedPrivileges无法获得足够的提升权限

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

这可以通过以下位置的“服务帐户”屏幕完成:

http:///_admin/FarmCredentialManagement.aspx


如果您使用web服务,您可能希望扮演自己的web服务角色,以防止通过HTTP进行过多的“聊天”。

问题是CA应用程序池和WFE应用程序池很可能在不同的帐户下运行,这是一种最佳做法,尽管在您是开发人员时会很烦人。使用SPSecurity.RunWithElevatedPrivileges无法获得足够的提升权限

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

这可以通过以下位置的“服务帐户”屏幕完成:

http:///_admin/FarmCredentialManagement.aspx


如果您使用web服务,您可能希望自己的web服务扮演角色,以防止通过HTTP进行过多的“聊天”。

Hi Kit,我们确实尝试了Windows模拟,但无法成功运行,谢谢您的回答。PHi Kit,我们确实尝试了Windows模拟,但无法成功运行,谢谢您的回答。p根据所需的确切权限,在中央管理/应用程序管理/web应用程序策略中添加带有“帐户作为系统运行”的WFE服务帐户可以解决问题,而无需更改服务帐户。根据所需的确切权限,在中央管理/应用程序管理/web应用程序策略中添加带有“帐户作为系统运行”的WFE服务帐户可以解决此问题,而无需更改服务帐户。