PrincipalPermission-Objekte
Das rollenbasierte Sicherheitsmodell unterstützt ein Berechtigungsobjekt, das den im Codezugriffssicherheitsmodell verwendeten Berechtigungsobjekten ähnelt. Dieses Objekt (PrincipalPermission) stellt die Identität und die Rolle dar, über die eine bestimmte Principalklasse für eine Ausführung verfügen muss. Sie können die PrincipalPermission-Klasse für imperative und deklarative Sicherheitsüberprüfungen verwenden.
Erstellen Sie zum imperativen Implementieren der PrincipalPermission-Klasse eine neue Instanz der Klasse, und initialisieren Sie diese mit dem gewünschten Namen und der gewünschten Rolle, über die Benutzer für einen Zugriff auf den Code verfügen müssen. Im folgenden Code wird z. B. eine neue Instanz dieses Objekts mit der Identität "Joan"
und der Rolle "Teller"
initialisiert.
String id = "Joan";
String role = "Teller";
PrincipalPermission principalPerm = new PrincipalPermission(id, role);
Dim id As String = "Joan"
Dim role As String = "Teller"
Dim principalPerm As New PrincipalPermission(id, role)
Mit der PrincipalPermissionAttribute-Klasse können Sie eine ähnliche Berechtigung deklarativ erstellen. Im folgenden Code wird die Identität mit "Joan"
und die Rolle mit "Teller"
deklarativ initialisiert.
[PrincipalPermissionAttribute(SecurityAction.Demand, Name = "Joan", Role = "Teller")]
<PrincipalPermissionAttribute(SecurityAction.Demand, Name := "Joan", Role := "Teller")>
Bei der Sicherheitsüberprüfung müssen die angegebene Identität und Rolle übereinstimmen, damit die Prüfung erfolgreich durchgeführt werden kann. Beim Erstellen des PrincipalPermission-Objekts können Sie jedoch eine leere Identitätszeichenfolge übergeben und so anzeigen, dass die Identität des Principals beliebig sein kann. Entsprechend zeigt eine leere Rollenzeichenfolge an, dass der Principal Member einer beliebigen Rolle (oder keiner Rolle) sein kann. Bei der deklarativen Sicherheit erreichen Sie dies, indem Sie eine der Eigenschaften auslassen. Im folgenden Code wird mit dem PrincipalPermissionAttribute deklarativ angegeben, dass ein Principal einen beliebigen Namen haben kann, aber die Rolle "Teller" haben muss.
[PrincipalPermissionAttribute(SecurityAction.Demand, Role = "Teller")]
<PrincipalPermissionAttribute(SecurityAction.Demand, Role := "Teller")>
Siehe auch
Referenz
PrincipalPermission
PrincipalPermissionAttribute