Durchführen deklarativer Sicherheitsüberprüfungen
Deklarative Forderungen von PrincipalPermission werden in derselben Weise wie deklarative Forderungen von Codezugriffsberechtigungen durchgeführt. Anforderungen können auf Klassenebene oder für einzelne Methoden, Eigenschaften oder Ereignisse erfolgen. Wenn eine deklarative Anforderung auf Klassen- und Elementebene erfolgt, überschreibt (oder ersetzt) die deklarative Anforderung für der Member die Anforderung auf Klassenebene.
Im folgenden Codebeispiel wird eine veränderte Version der PrivateInfo -Methode aus dem Beispiel des vorherigen Abschnitts verwendet. Diese Version verwendet die deklarative Sicherheit. Das PrincipalPermissionAttribute definiert den Principal, über den der aktuelle Thread für den Aufruf der Methode verfügen muss. Übergeben Sie SecurityAction.Demand einfach mit dem gewünschten Namen und der gewünschten Rolle.
[PrincipalPermissionAttribute(SecurityAction.Demand, Name = "MyUser", Role = "User")]
public static void PrivateInfo()
{
//Print secret data.
Console.WriteLine("\n\nYou have access to the private data!");
}
Public Shared Sub _
<PrincipalPermissionAttribute(SecurityAction.Demand, Name := "MyUser", Role := "User")> _
PrivateInfo()
'Print secret data.
Console.WriteLine(ControlChars.CrLf + "You have access to the private data!")
End Sub
Diese Methode löst eine Sicherheitsausnahme aus, wenn der aktuelle Thread nicht den richtigen Principal enthält. Wenn der Benutzer 1 eingibt , wird die PrivateInfo -Methode aufgerufen und die folgende Meldung in der Konsole angezeigt.
You have access to the private data!