Олицетворение ASP.NET PowerShell

Я разработал веб-приложение MVC ASP.NET для выполнения сценариев PowerShell.

Я использую веб-сервер VS и могу выполнить прекрасные сценарии.

Однако требование - то, что пользователи могут выполнить сценарии против AD для выполнения действий, которые их собственным учетным записям пользователей не позволяют сделать.

Поэтому я использую олицетворение для переключения идентификационных данных прежде, чем создать PowerShell runspace:

            Runspace runspace = RunspaceFactory.CreateRunspace(config);

        var currentuser = WindowsIdentity.GetCurrent().Name;

        if (runspace.RunspaceStateInfo.State == RunspaceState.BeforeOpen) {
            runspace.Open();
        }

Я протестировал использование учетной записи администратора домена, и я получаю следующее исключение при вызове runspace. Открытый ():

Описание Исключения безопасности: приложение попыталось выполнить операцию, не позволенную политикой безопасности. Для удовлетворения этого ходатайства необходимое разрешение, свяжитесь системным администратором или измените доверительный уровень приложения в конфигурационном файле. Детали исключения: Система. Безопасность. SecurityException: Требуемый доступ к реестру не позволяется.

Веб-приложение работает в полном доверии, и я явно добавил учетную запись, которую я использую для олицетворения для группы локальных администраторов машины (даже при том, что группа администраторов домена уже была там).

Я использую вызов advapi32.dll LogonUser для выполнения олицетворения похожим способом к этому сообщению (http://blogs.msdn.com/webdav_101/archive/2008/09/25/howto-calling-exchange-powershell-from-an-impersonated-thead.aspx)

Любая справка ценила, поскольку это - что-то вроде выставочного стопора в данный момент.

Спасибо Ben

5
задан Ben Foster 16 April 2010 в 23:08
поделиться

1 ответ

Помогает ли это сообщение в блоге? Поставляется прямо от разработчиков PowerShell. По сути, PowerShell запускает новый поток для запуска конвейера, и поскольку .NET2.0 не позволяет потоку использовать олицетворение из вызывающего потока, он терпит неудачу.

http://blogs.msdn.com/powershell/archive/2007/09/10/impersonation-and-hosting-powershell.aspx

3
ответ дан 15 December 2019 в 06:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: