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
Konzepte
Sicherheitssyntax
Sicherheitsberechtigungen
Weitere Ressourcen
Erweitern von Metadaten mithilfe von Attributen
Codezugriffssicherheit
Metadaten und selbstbeschreibende Komponenten