【问题标题】:"RunWithElevatedPrivileges" in SharePoint Timer Jobs?SharePoint 计时器作业中的“RunWithElevatedPrivileges”?
【发布时间】:2009-08-27 12:31:37
【问题描述】:

我们可以在 SharePoint 计时器作业中使用 SPSecurity.RunWithElevatedPrivileges 吗?

计时器作业将以谁的身份在提升的权限下运行?

任何有关这方面的问题和必须知道的事实也将不胜感激。

【问题讨论】:

    标签: sharepoint sharepoint-2007 moss wss timer-jobs


    【解决方案1】:

    RunWithElevatedPrivileges 仅在当前线程使用模拟(即 IIS)时才有效。在其他代码(计时器作业、控制台应用程序、工作流等)中使用它不会产生任何影响。 Colin 是正确的,默认情况下计时器服务作为配置向导中指定的场服务帐户运行。您可以在 Windows 服务中验证这一点。

    【讨论】:

    • 我不能说定时器作业或工作流,或者技术上的控制台应用程序,但我正在开发一个 winforms 应用程序 - 它应该具有与控制台应用程序基本相同的执行上下文(启动的用户应用程序) - 如果没有 RunWithElevatedPrivileges 委托,它就无法做某些事情,然后当然会在新的提升上下文中获得新的 SPSite。您是否有资料表明这是不必要的?
    • 确认一下,您使用的是 SharePoint 3.0/2007?尝试检查Environment.Username 进出RWEP,看看是否真的有变化。 (请参阅solutionizing.net/2009/01/06/elegant-spsite-elevation/… 和相关讨论的回复。)
    • 不 - SharePoint 2013 - RunWithElevatedPrivileges() 的功能可能从那时起改变了吗?还是在较新版本的 SP 中略有不同?
    • 不知道,老实说 - 我离开 SharePoint 开发已经好几年了。我会打开 ILSpy/dotPeek/equivalent 看看现在的实现是什么样子。你试过检查Environment.Username吗?
    【解决方案2】:

    它们在您第一次运行 SharePoint 产品和技术配置向导以连接到 SQl/运行 Central Admin 应用程序池时使用的帐户下运行。即 SharePoint 中的上帝帐户。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-16
      • 1970-01-01
      • 2010-09-05
      • 1970-01-01
      相关资源
      最近更新 更多