Verwaltung mit Codegruppenattributen
Aktualisiert: November 2007
Angenommen, Sie sind Administrator einer Organisation und für die Verwaltung der Sicherheitsrichtlinien für eine Reihe von Arbeitsstationen verantwortlich. In typischen Organisationsdomänen verfügt der Administrator über Administratorrechte für alle Server und Clients. Es ist jedoch nicht ungewöhnlich, dass einzelne Benutzer über Administratorrechte für eine einzelne Arbeitsstation verfügen. Dadurch verfügt der Netzwerkadministrator über Administratorrechte für die Ebene der Unternehmensrichtlinien und der Administrator der Arbeitsstation über Administratorrechte auf Ebene der Computerrichtlinien. In dieser Situation scheint der Netzwerkadministrator über eine umfangreichere Kontrolle über die Richtlinien zu verfügen, da die Unternehmensrichtlinien zuerst ausgewertet werden und Entscheidungen des Administrators für die Organisationsebene durch Computerrichtlinien nicht gelockert werden dürfen. Der Administrator der Computerebene kann dennoch die Sicherheitsrichtlinien einschränken und somit die problemlose Ausführung vertrauenswürdiger Anwendungen verhindern, die andernfalls hätten ausgeführt werden können. Aus diesem Grunde kann auf höheren Richtlinienebenen festgelegt werden, dass Richtlinienentscheidungen auf niedrigeren Ebenen von der Auswertung ausgenommen werden.
Dies ist durch Anwenden des LevelFinal-Attributs oder des Exclusive-Attributs auf eine Codegruppe mithilfe eines der Sicherheitsrichtlinientools möglich.
LevelFinal-Attribut
Mit dem LevelFinal-Attribut wird bei Anwendung auf eine Codegruppe jede Richtlinienebene unterhalb der aktuellen Ebene von der Auswertung ausgeschlossen. Wenn Sie z. B. das LevelFinal-Attribut auf Organisationsebene auf die Codegruppe für das lokale Intranet anwenden, werden selbst dann keine Codegruppen auf Computerebene ausgewertet, wenn der Administrator der Computerebene Änderungen vorgenommen hat. Durch Anwenden des LevelFinal-Attributs wird sichergestellt, dass eine einer Codegruppe zugeordnete und mit diesem Attribut markierte Assembly in keinem Fall durch Entscheidungen eines Administrators auf niedrigerer Richtlinienebene geringere Berechtigungen erhält. Informationen zum Festlegen des LevelFinal-Attributs für eine benutzerdefinierte oder Standardcodegruppe finden Sie unter .NET Framework-Konfigurationstool (Mscorcfg.msc) oder Code Access Security Policy-Tool (Caspol.exe).
Exclusive-Attribut
Das Exclusive-Attribut verhindert bei Anwendung auf eine Codegruppe, dass andere Codegruppen auf derselben Richtlinienebene berücksichtigt werden, wenn die Laufzeit Berechtigungen für Assemblys berechnet, die sich in der exklusiven Codegruppe befinden. Richtlinienebenen oberhalb und unterhalb der aktuellen Ebene werden dennoch ausgewertet. Dieses Attribut ermöglicht es einer bestimmten Codegruppe, die alleinige Entscheidung für die aktuelle Richtlinienebene zu treffen, welche Berechtigungen Assemblys gewährt werden, die mit dieser Gruppe übereinstimmen. Dies ist sinnvoll, wenn Sie bestimmten Assemblys einen bestimmten Berechtigungssatz gewähren möchten, ohne Berechtigungen aus anderen Codegruppenübereinstimmungen auf derselben Richtlinienebene zuzulassen.
Beachten Sie, dass eine Assembly nicht ausgeführt werden kann, wenn sie mehr als einer als exklusiv markierten Codegruppe angehört. Verwenden Sie daher das Exclusive-Attribut bei der Verwaltung benutzerdefinierter Sicherheitsrichtlinien möglichst selten. Informationen zum Festlegen des Exclusive-Attributs für eine integrierte oder benutzerdefinierte Codegruppe finden Sie unter .NET Framework-Konfigurationstool (Mscorcfg.msc) oder Sicherheitsrichtlinientool für den Codezugriff (Caspol.exe).