DLL-Referenzen scheitern mit "Zugriff verweigert", wenn sie die Identitätswechsel für einen nicht lokalen Windows-Benutzer verwenden

StackOverflow https://stackoverflow.com/questions/661081

Frage

Wir haben einen Service mit WCF und Identitätswechsel.

Ein Benutzer kann sich bei der Client -Anwendung mit Anmeldeinformationen anmelden, die Teil eines Active Directory -Systems sind.

Die Benutzeranmeldung ist imitierten Service -Seite.

Dies funktioniert gut, wenn der Benutzer, der sich angemeldet hat, als lokaler Administrator auf seinem Host -Computer eingerichtet ist.

Ein Problem tritt jedoch auf, wenn es sich um einen nicht privilegierten (Standard-) Benutzer handelt. Wir erhalten eine Ausnahme, in der der Zugang "eine unserer DLLs" verweigert wird. (Es passiert bei all unseren DLLs)

War es hilfreich?

Lösung

Dies war eigentlich eine einfache Frage der Berechtigungen in der Bereitstellungsumgebung.

Verwendung der Code -Zugriffs -Sicherheitsrichtlinien -Tool (Caspol.exe) Es ging nur darum, die richtigen Berechtigungen anzuwenden. Es gibt einen Anleitungen zur Verwendung von Anleitungen msdn.

Die tatsächliche Befehlszeilenzeichenfolge war

Caspol.exe -addgroup 1 -strong -File d: Deployment_location WcfServicehost.exe -noname -noversion fulltrust

Dies wurde auf einer Sammlung von Dienstleistungen durchgeführt. Da sich unsere Versionsnummern häufig unter Verwendung der "Noversion" änderten, erforderte der Service auch FullTrust in unserer Einstellung.

Erstellen Sie ein PowerShell-Skript (oder eine Stapeldatei) und verwenden Sie den Parameter "polchgprompt", um die Fix für verschiedene Maschinen wieder zu verwenden, um Eingabeaufforderungen auszuschalten, damit das Skript ohne Intervention ausgeführt werden kann.

Polchgprompt - "Aktiviert oder deaktiviert die Eingabeaufforderung, die angezeigt wird, wenn Caspol.exe mit einer Option ausgeführt wird, die Richtlinienänderungen verursachen würde."

Skriptstruktur:

CasPol.exe -polchgprompt off

--all the individual service calls--
CasPol.exe -addgroup 1 -strong -file D:\deployment_location\WcfServiceHost.exe -noname -noversion FullTrust
...

CasPol.exe -polchgprompt on
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top