ASP.NET PowerShell-Identitätswechsel

ch habe eine ASP.NET MVC-Webanwendung zum Ausführen von PowerShell-Skripten entwickel

Ich verwende den VS-Webserver und kann Skripte problemlos ausführen.

Voraussetzung ist jedoch, dass Benutzer Skripts für AD ausführen können, um Aktionen auszuführen, die ihre eigenen Benutzerkonten nicht ausführen dürfen.

Daher verwende ich Identitätswechsel, um die Identität vor dem Erstellen des PowerShell-Runspace zu ändern:

            Runspace runspace = RunspaceFactory.CreateRunspace(config);

        var currentuser = WindowsIdentity.GetCurrent().Name;

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

Ich habe mit einem Domänenadministratorkonto getestet und beim Aufrufen von runspace.Open () wird die folgende Ausnahme angezeigt:

Security-Ausnahmebeschreibung: Die Anwendung hat versucht, einen Vorgang auszuführen, der in der Sicherheitsrichtlinie nicht zulässig ist. Um dieser Anwendung die erforderliche Berechtigung zu erteilen, wenden Sie sich an Ihren Systemadministrator oder ändern Sie die Vertrauensebene der Anwendung in der Konfigurationsdatei. Ausnahmedetails: System.Security.SecurityException: Der angeforderte Registrierungszugriff ist nicht zulässig.

Die Webanwendung wird in voller Vertrauenswürdigkeit ausgeführt, und ich habe das Konto, das ich für den Identitätswechsel verwende, ausdrücklich zur lokalen Administratorgruppe des Computers hinzugefügt (obwohl die Gruppe der Domänenadministratoren bereits vorhanden war).

Ich verwende den Aufruf advapi32.dll LogonUser, um den Identitätswechsel auf ähnliche Weise wie in diesem Beitrag durchzuführen http: //blogs.msdn.com/webdav_101/archive/2008/09/25/how to-calling-exchange-powershell-from-an-impersonated-thead.asp)

Jede Hilfe wird geschätzt, da dies im Moment eine Art Show-Stopper ist.

Danke Ben

Antworten auf die Frage(1)

Ihre Antwort auf die Frage