Что такое RevertToSelf ()?- C # .net - PullRequest
       66

Что такое RevertToSelf ()?- C # .net

4 голосов
/ 21 декабря 2010

Я не понимаю, что RevertToSelf() делает в приложении .net.Проверяя определение MSDN, он читает определение как

The RevertToSelf function terminates the impersonation of a client application.

. Изменяется ли текущий пользовательский контекст в контекст системного администратора, останавливая контекст клиента?При вызове RevertToSelf () мой код будет работать в режиме администратора sys?

Обновление

Хорошо, что будет, если я вызову RevertToSelf () в приложении ASP.NET?Давайте посмотрим, я не начинаю подражать.Поэтому, если я вызову RevertToSelf (), вернется ли он к идентификатору пула приложений?

Ответы [ 4 ]

8 голосов
/ 21 декабря 2010

RevertToSelf прекратит любое олицетворение, которое вы активно включили. Вы можете настроить приложение для олицетворения любой учетной записи пользователя. RevertToSelf не имеет никакого эффекта, если вы не используете олицетворение. При вызове RevertToSelf ваш код будет запускаться от имени администратора только в том случае, если приложение было запущено от имени администратора и изначально находилось в приложении, настроенном для олицетворения другой учетной записи.

2 голосов
/ 21 декабря 2010

Несколько лет назад я написал крошечный IDisposable реализующий класс под названием Имитатор , чтобы выполнять олицетворение / возврат (почти) автоматически.

Возможно, если вы посмотритеон расскажет вам, как и когда его использовать?

0 голосов
/ 21 декабря 2010

Предполагая, что у вас есть определенные учетные данные пользователя (например, имя пользователя и пароль), вы можете начать олицетворение и выполнять вызовы Win32 API, которые выполняются в контексте олицетворенного пользователя.Таким образом, у вас будут права доступа пользователя, которого вы выдаете за себя, пока вы не вызовете RevertToSelf (), и в этом случае вы вернетесь к правам доступа пользователя, который первоначально запустил код.

0 голосов
/ 21 декабря 2010

Изменяется в контексте пользователя, который запускал приложение до олицетворения. Не надо сисадмина. Подробнее здесь: http://msdn.microsoft.com/en-us/library/aa376391(v=vs.85).aspx

...