Vertrauensebenen und Ausnahmen im .NET-Framework übergeordnet festlegen Berechtigungen eines .NET-Assembly per Assistent erhöhen
Vertrauenseinstellungen legen im .NET-Framework fest, welche Berechtigungen ein Assembly im Rahmen der Programmausführung hat. Um etwaige Einschränkungen zu umgehen, die sich aufgrund dieser Einstellung ergeben, kann die Vertrauensstellung per Konfigurations-Tool nachträglich und übergeordnet festgelegt werden.
Anbieter zum Thema
Ein Assembly wird bereits beim Laden analysiert und auf seine Beweiskraft (Evidence) hin untersucht. In diesem Zusammenhang berücksichtigt die Prüfroutine den Strong Name (starker Name), den zugewiesene Authentifizierungscode des jeweiligen Software-Herstellers oder aber der URL-Ursprung. Erst im Anschluss daran erhält das Assembly die zugeordneten Berechtigungen.
Wird in einem Assembly eine Berechtigung für einen bestimmten Ressourcenzugriff nicht gesondert angefordert, muss für den jeweiligen Ressourcenzugriff eine entsprechende Ausnahme (Exception) erzeugt werden. Eine Ausführung einer eingeschränkten Operation (z.B. eine Datenspeicherung) ist aber auch bei einer gezielten Behandlung dieser Ausnahme dennoch nicht möglich. Um diese Einschränkung aufzuheben, muss die Vertrauensstellung des Assemblies über das .NET Framework-Konfigurations-Tool gezielt erhöht werden.
Berücksichtigen Sie in diesem Zusammenhang, dass das Herabsetzen der Vertrauenswürdigkeit durch das Verwaltungsprogramm nicht entsprechend angeboten wird. Wollen Sie ein Programm mit eingeschränktem Vertrauen versehen, müssen Sie dies über den jeweils zugeordneten Berechtigungssatz gesondert realisieren. Um die Vertrauensseinstellung zu ändern, muss das jeweilige Assembly mit einem Strong Name versehen worden sein.
Assistenten starten und Änderungstyp wählen
Der Aufruf des Verwaltungsprogramms variiert je nach .NET-Version (vgl. Praxisbeitrag „Sicherheitszonen im .NET Framework“). In .NET 2.0 starten Sie zunächst die SDK-Eingabeaufforderung, geben dann den Befehl
mscorcfg.msc
ein und bestätigen mit [Enter].
Anschließend wählen Sie im folgenden Dialog in der Strukturansicht den Hierarchiezweig
.NET Configuration 2.0/Arbeitsplatz/Laufzeitsicherheitsrichtlinie
und danach die Verknüpfung „Die Vertrauensstellung eines Assembly erhöhen“ an.
Es startet der Assistent „Einer Assembly vertrauen“. Geben Sie durch Anwahl der entsprechenden Option zunächst an, ob die Änderungen für den gesamten Computer und alle Benutzer oder nur den aktuellen Benutzer gelten sollen und bestätigen Sie mit Weiter.
Assembly wählen
Im ersten Dialogfeld geben Sie im Textfeld zunächst Suchpfad und Name bzw. die URL des zu vertrauenden Assembly an. Bei Bedarf können Sie das Assembly nach Anwahl der Schaltfläche Durchsuchen auch über einen Dateiauswahldialog anwählen. Bestätigen Sie erneut mit „Weiter“. Bei Assemblies, die keinen starken Namen besitzen, wird eine gesonderte Fehlermeldung ausgegeben.
Herausgeberspezifische Einstellungen
In einem weiteren Dialogfeld können Sie nun festlegen, ob die Änderung der Vertrauenseinstellung nur für das gewählte Assembly oder aber alle Assemblies mit gleichem Herausgeber gelten soll. In der Regel verwenden Herausgeber in Assemblies einen einzelnen Schlüssel, um diese herausgeberspezifisch zu signieren, auch wenn dies nicht zwingend erforderlich ist.
Vergleichen Sie in diesem Zusammenhang die erweiterten Informationen, die nach Anwahl der Verknüpfung Was ist der Unterschied? angezeigt werden. Wollen Sie die Änderungen herausgeberspezifisch vornehmen, können Sie neben dem öffentlichen Schlüsseltoken auch die Versionsnummer zur Assembly-Identifizierung einbeziehen lassen. Bestätigen Sie die gemachten Einstellungen mit Weiter.
Vertrauensebene festlegen
Über einen Schieberegler können Sie nun die gewünschte Vertrauensebene für das Assembly beziehungsweise die herausgeberspezifischen Assemblies festlegen. Berücksichtigen Sie dabei, ob Sie die Einstellung für den aktuellen Benutzer oder für alle Benutzer des Computers vornehmen. Bestätigen Sie die Einstellung mit „Weiter“.
Überprüfen und übernehmen der Änderungen
Kontrollieren Sie abschließend in einem weiteren Dialog die Änderungs-Zusammenfassung mit „Fertig stellen“. Gegebenenfalls können Sie Anpassungen an den Einstellungen vornehmen.
Für eine Komponente lassen sich bereits auf Quelltextebene Mindestberechtigungen (RequestMinimum), optionale Berechtigungen (RequestOptional) oder zu verweigernde Berechtigungen (RequestRefuse) bestimmen. Dabei kann die Anforderung optionaler Berechtigungen die Funktionalität des Assembly mitunter erheblich einschränken.
Die zuvor genannten Anforderungen können Sie auf die integrierten Berechtigungssätze (z.B. Nothing, Exception, FullTrust, Internet oder SkipVerification) oder auf XML-kodierte Berechtigungssätze anwenden. Mehrere Berechtigungen, beispielsweise zum Zugriff auf die Registrierdatenbank oder das Dateisystem können in so genannten Berechtigungssätzen (Permission Sets) zusammengefasst werden.
Artikelfiles und Artikellinks
(ID:2006282)