Freigeben über


Deklarative Sicherheit

Bei der deklarativen Sicherheitssyntax werden Sicherheitsinformationen mithilfe von Attributen in die Metadaten des Codes geschrieben. Attribute können auf der Assembly-, Klassen- oder Memberebene platziert werden, um den Typ der gewünschten Anforderung, Forderung oder Außerkraftsetzung anzugeben. Mithilfe von Anforderungen wird in Anwendungen für die Common Language Runtime das Sicherheitssystem der Laufzeit über die Berechtigungen informiert, die für die Anwendung benötigt bzw. nicht gewünscht werden. Durch Forderungen und Außerkraftsetzungen werden in Bibliotheken Ressourcen vor Aufrufern geschützt bzw. das Standardsicherheitsverhalten wird außer Kraft gesetzt.

Wenn Sie deklarative Sicherheitsaufrufe verwenden möchten, müssen Sie die Zustandsdaten des Berechtigungsobjekts initialisieren, sodass es die bestimmte Form der benötigten Berechtigung darstellt. Jede integrierte Berechtigung verfügt über ein Attribut, dem eine SecurityAction-Enumeration übergeben wird, um die Art der auszuführenden Sicherheitsoperation zu beschreiben. Berechtigungen akzeptieren jedoch auch eigene Parameter, die ihnen exklusiv zugewiesen sind. Eine vollständige Beschreibung der spezifischen Parameter für Berechtigungen finden Sie im Abschnitt über integrierte Berechtigungen.

Das folgende Codefragment veranschaulicht deklarative Syntax, mit der angefordert wird, dass die Aufrufer des Codes über die benutzerdefinierte Berechtigung MyPermission verfügen. Dies ist eine hypothetische benutzerdefinierte Berechtigung, die in .NET Framework nicht vorhanden ist. In diesem Beispiel wird der deklarative Aufruf direkt vor der Klassendefinition platziert, wodurch angegeben wird, dass diese Berechtigung auf die Klassenebene angewendet wird. Durch Übergeben einer SecurityAction.Demand-Struktur an das Attribut wird angegeben, dass Aufrufer für die Ausführung über diese Berechtigung verfügen müssen.

<MyPermission(SecurityAction.Demand, Unrestricted = True)> Public Class MyClass1
   
   Public Sub New()
      'The constructor is protected by the security call.
   End Sub
   
   
   Public Sub MyMethod()
      'This method is protected by the security call.
   End Sub
   
   
   Public Sub YourMethod()
      'This method is protected by the security call.
   End Sub
End Class
[MyPermission(SecurityAction.Demand, Unrestricted = true)]
public class MyClass
{
   public MyClass()
   {
      //The constructor is protected by the security call.
   }

   public void MyMethod()
   {
      //This method is protected by the security call.
   }

   public void YourMethod()
   {
      //This method is protected by the security call.
   }
}

Siehe auch

Referenz

SecurityAction

Konzepte

Sicherheitssyntax
Sicherheitsberechtigungen

Weitere Ressourcen

Erweitern von Metadaten mithilfe von Attributen
Codezugriffssicherheit
Metadaten und selbstbeschreibende Komponenten