从我从反射器中收集到的内容,RunWithElevatedPriveleges只是将当前线程标识恢复为基本(非模拟)标识。由于基本服务帐户是超级用户,因此在WSS应用程序池中运行的代码的情况下,这非常有意义。在没有模拟的情况下,在外部(控制台或服务)应用程序中运行时是否有任何影响?我猜不是,但我想知道肯定。我通过谷歌搜索看到了不同的意见。
答案 0 :(得分:3)
我认为如果你在一个帐户下运行可执行文件然后用代码更改它的凭据(如SP那样)。否则,如果没有生成Credentials对象的某种方式,它就无法提升到启动时没有的权限。
答案 1 :(得分:3)
通常,Runwithelevatedprivileges会将您的代码作为应用程序池标识运行,但它无法从控制台运行。我们在这种情况下所做的是使用runas或 a将计划任务的标识设置为与应用程序池标识相同的帐户。
答案 2 :(得分:0)
当HTTPContext为null时,RunWithElevatedPriveleges不起作用。在控制台中,HTTPContext为null。