5

我不明白RevertToSelf().net 应用程序中的作用。检查 MSDN 定义,它将定义读取为

The RevertToSelf function terminates the impersonation of a client application.

那么当前用户上下文是否会通过停止客户端的上下文更改为系统管理员上下文?通过调用 RevertToSelf() 我的代码会在系统管理员模式下运行吗?

更新

好的,如果我在 ASP.NET 应用程序中调用 RevertToSelf() 会发生什么?让我们考虑一下我没有开始任何模仿。因此,如果我调用 RevertToSelf() 会恢复到应用程序池标识吗?

4

4 回答 4

9

RevertToSelf将终止您主动启用的任何模拟。您可以设置应用程序来模拟任何用户帐户。RevertToSelf除非您使用模拟,否则无效。调用RevertToSelf只会让您的代码以管理员身份运行,前提是应用程序一开始就以管理员身份运行,并且来自配置为模拟另一个帐户的应用程序。

于 2010-12-21T12:22:32.747 回答
2

几年前,我编写了一个IDisposable名为Impersonator的小型实现类来(几乎)自动进行模拟/恢复。

也许如果你看一下,它会告诉你如何以及何时使用它?

于 2010-12-21T12:23:07.513 回答
0

它更改为在模拟之前运行应用程序的用户的上下文。不需要系统管理员。在此处阅读更多信息:http: //msdn.microsoft.com/en-us/library/aa376391 (v=vs.85).aspx

于 2010-12-21T12:23:05.120 回答
0

假设您有某个用户的凭据(即用户名和密码),您可以开始模拟并调用在模拟用户的上下文中执行的 Win32 API。因此,您将拥有您正在模拟的用户的访问权限,直到您调用 RevertToSelf(),在这种情况下,您将恢复到最初启动代码的用户的访问权限。

于 2010-12-21T12:24:08.263 回答