Что такое reverttoself ()? - c#.net
-
12-10-2019 - |
Вопрос
Я не понимаю, что RevertToSelf()
делает в приложении .NET. Проверка определения MSDN он читает определение как
The RevertToSelf function terminates the impersonation of a client application.
Так изменяется ли текущий пользовательский контекст в контексте SysAdmin, останавливая контекст клиента? Позвонив reverttoself (), будет ли мой код запускать в режиме администратора Sys?
Обновлять
Хорошо, что произойдет, если я позвоню в reverttoself () в приложении ASP.NET? Давайте рассмотрим, что я не начинаю какого -либо подражания. Так что, если я позвоню в reverttoself (), вернется ли он к личности пула приложений?
Решение
RevertToSelf
прекратит любое подражание, которое вы активно включили. Вы можете установить приложение, чтобы выдать себя за любую учетную запись пользователя. RevertToSelf
не имеет никакого эффекта, если вы не используете подражание. Вызов RevertToSelf
Получит ваш код запуска в качестве администратора, только если приложение будет запущено в качестве администратора для начала, и было из приложения, настроенного на выдачу другого учетной записи.
Другие советы
Несколько лет назад я написал крошечный IDisposable
-Мавтографирование класса называется Подражатель выполнять олицетворение/возврат (почти) автоматически.
Может быть, если вы посмотрите, это скажет вам, как и когда его использовать?
Он меняется в контекст пользователя, который запускал приложение перед олицетворянием. Это не необходим Sysadmin. Подробнее здесь: http://msdn.microsoft.com/en-us/library/aa376391(v=vs.85).aspx
Предполагая, что у вас есть учетные данные определенного пользователя (т.е. имя пользователя и пароль), вы можете начать подражание и звонить в API Win32, которые выполняются в контексте выдающегося пользователя. Таким образом, у вас будут права доступа пользователя, которого вы выдаете себя за себя, пока вы не позвоните Reverttoself (), и в этом случае вы вернетесь к правам доступа пользователя, который первоначально запустил код.