PrincipalPermission PrincipalPermission PrincipalPermission PrincipalPermission Class

Definition

Lässt Vergleiche mit dem aktiven Prinzipal (siehe IPrincipal) mithilfe der Sprachkonstrukte zu, die sowohl für deklarative als auch für imperative Sicherheitsaktionen definiert sind.Allows checks against the active principal (see IPrincipal) using the language constructs defined for both declarative and imperative security actions. Diese Klasse kann nicht vererbt werden.This class cannot be inherited.

public ref class PrincipalPermission sealed : System::Security::IPermission, System::Security::Permissions::IUnrestrictedPermission
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public sealed class PrincipalPermission : System.Security.IPermission, System.Security.Permissions.IUnrestrictedPermission
type PrincipalPermission = class
    interface IPermission
    interface IUnrestrictedPermission
    interface ISecurityEncodable
Public NotInheritable Class PrincipalPermission
Implements IPermission, IUnrestrictedPermission
Vererbung
PrincipalPermissionPrincipalPermissionPrincipalPermissionPrincipalPermission
Attribute
Implementiert

Beispiele

Im folgenden Beispiel muss der aktive Prinzipal ein Administrator sein.The following example requires the active principal to be an administrator. Der name -Parameter nullist, sodass jeder Benutzer, der Administrator ist, die Anforderung übergibt.The name parameter is null, which enables any user who is an administrator to pass the demand.

Hinweis

Unter Windows Vista werden die Berechtigungen eines Benutzers über die Benutzerkontensteuerung (User Account Control, UAC) bestimmt.In Windows Vista, User Account Control (UAC) determines the privileges of a user. Als Mitglied der integrierten Administratorgruppe sind Ihnen zwei Zugriffstoken für die Laufzeit zugewiesen: ein Standardbenutzertoken und ein Administratorzugriffstoken.If you are a member of the Built-in Administrators group, you are assigned two run-time access tokens: a standard user access token and an administrator access token. Standardmäßig verwenden Sie die Standardbenutzerrolle.By default, you are in the standard user role. Um Code ausführen zu können, der Administratorberechtigungen erfordert, müssen Sie zuerst Ihre Berechtigungen von Standardbenutzer auf Administrator erhöhen.To execute the code that requires you to be an administrator, you must first elevate your privileges from standard user to administrator. Dazu starten Sie eine Anwendung, indem Sie mit der rechten Maustaste auf das Anwendungssymbol klicken und angeben, dass Sie die Anwendung als Administrator ausführen möchten.You can do this when you start an application by right-clicking the application icon and indicating that you want to run as an administrator.

using namespace System;
using namespace System::Security;
using namespace System::Security::Permissions;
using namespace System::Security::Policy;
using namespace System::Security::Principal;

int main(array<System::String ^> ^args)
{
    System::String^ null;
    AppDomain::CurrentDomain->SetPrincipalPolicy(PrincipalPolicy::WindowsPrincipal);
    PrincipalPermission^ principalPerm = gcnew PrincipalPermission(null, "Administrators" );
      principalPerm->Demand();
      Console::WriteLine("Demand succeeded");
    return 0;
}
using System;
using System.Threading;
using System.Security.Permissions;
using System.Security.Principal;

class SecurityPrincipalDemo
{

    public static void Main()
    {
        AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);
        PrincipalPermission principalPerm = new PrincipalPermission(null, "Administrators");
        principalPerm.Demand();
        Console.WriteLine("Demand succeeded.");
    }
}
Imports System.Threading
Imports System.Security.Permissions
Imports System.Security.Principal



Class SecurityPrincipalDemo


    Public Shared Sub Main()
        AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal)
        Dim principalPerm As New PrincipalPermission(Nothing, "Administrators")
        principalPerm.Demand()
        Console.WriteLine("Demand succeeded.")

    End Sub
End Class

Hinweise

Durch die Übergabe von Identitätsinformationen (Benutzername und Rolle) an den- PrincipalPermission Konstruktor kann verwendet werden, um zu verlangen, dass die Identität des aktiven Prinzipals mit diesen Informationen übereinstimmt.By passing identity information (user name and role) to the constructor, PrincipalPermission can be used to demand that the identity of the active principal matches this information.

Um den aktiven IPrincipal und zugeordneten IIdentityzu entsprechen, müssen sowohl die angegebene Identität als auch die angegebene Rolle entsprechen.To match the active IPrincipal and associated IIdentity, both the specified identity and role must match. Wenn null die Identitäts Zeichenfolge verwendet wird, wird Sie als Anforderung interpretiert, eine beliebige Identität abzugleichen.If null identity string is used, it is interpreted as a request to match any identity. Die Verwendung null der Rollen Zeichenfolge entspricht jeder Rolle.Use of null role string will match any role. Implizit entspricht das übergeben null des para name meters role für PrincipalPermission oder an der Identität und den Rollen in IPrincipalbeliebigen.By implication, passing null parameter for name or role to PrincipalPermission will match the identity and roles in any IPrincipal. Es ist auch möglich, einen PrincipalPermission zu erstellen, der IIdentity nur bestimmt, ob eine authentifizierte oder nicht authentifizierte Entität darstellt.It is also possible to construct a PrincipalPermission that only determines whether the IIdentity represents an authenticated or unauthenticated entity. In diesem Fall name werden und role ignoriert.In this case, name and role are ignored.

Im Gegensatz zu den meisten PrincipalPermission anderen Berechtigungen wird CodeAccessPermissionvon nicht erweitert.Unlike most other permissions, PrincipalPermission does not extend CodeAccessPermission. Es wird jedoch die IPermission -Schnittstelle implementiert.It does, however, implement the IPermission interface. Dies liegt daran PrincipalPermission , dass keine Code Zugriffsberechtigung ist, d. h., Sie wird nicht auf Grundlage der Identität der ausführenden Assembly erteilt.This is because PrincipalPermission is not a code access permission; that is, it is not granted based on the identity of the executing assembly. Stattdessen kann der Code Aktionen (Demand Intersect, Union, usw.) für die aktuelle Benutzeridentität auf eine Weise durchführen, die der Art und Weise entspricht, wie diese Aktionen für den Code Zugriff und Code Identitäts Berechtigungen ausgeführt werden.Instead, it allows code to perform actions (Demand, Union, Intersect, and so on) against the current user identity in a manner consistent with the way those actions are performed for code access and code identity permissions.

Wichtig

Vor der Anforderung der Prinzipal Berechtigung muss die Prinzipal Richtlinie der aktuellen Anwendungsdomäne auf den-Enumerationswert WindowsPrincipalfestgelegt werden.Prior to a demand for principal permission it is necessary to set the current application domain's principal policy to the enumeration value WindowsPrincipal. Standardmäßig ist die Prinzipal Richtlinie auf UnauthenticatedPrincipalfestgelegt.By default, the principal policy is set to UnauthenticatedPrincipal. Wenn Sie die Prinzipal Richtlinie nicht auf WindowsPrincipalfestlegen, schlägt die Anforderung der Prinzipal Berechtigung fehl.If you do not set the principal policy to WindowsPrincipal, a demand for principal permission will fail. Der folgende Code sollte vor dem Verlangen der Prinzipal Berechtigung ausgeführt werden:The following code should be executed before the principal permission is demanded:

AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal).

Konstruktoren

PrincipalPermission(PermissionState) PrincipalPermission(PermissionState) PrincipalPermission(PermissionState) PrincipalPermission(PermissionState)

Initialisiert eine neue Instanz der PrincipalPermission-Klasse mit der angegebenen PermissionState.Initializes a new instance of the PrincipalPermission class with the specified PermissionState.

PrincipalPermission(String, String) PrincipalPermission(String, String) PrincipalPermission(String, String) PrincipalPermission(String, String)

Initialisiert eine neue Instanz der PrincipalPermission-Klasse für den angegebenen name und role.Initializes a new instance of the PrincipalPermission class for the specified name and role.

PrincipalPermission(String, String, Boolean) PrincipalPermission(String, String, Boolean) PrincipalPermission(String, String, Boolean) PrincipalPermission(String, String, Boolean)

Initialisiert eine neue Instanz der PrincipalPermission-Klasse für die angegebenen name, role und Authentifizierungsstatus.Initializes a new instance of the PrincipalPermission class for the specified name, role, and authentication status.

Methoden

Copy() Copy() Copy() Copy()

Erstellt eine identische Kopie der aktuellen Berechtigung und gibt sie zurück.Creates and returns an identical copy of the current permission.

Demand() Demand() Demand() Demand()

Bestimmt zur Laufzeit, ob der aktuelle Prinzipal mit dem durch die aktuelle Berechtigung angegebenen Prinzipal übereinstimmt.Determines at run time whether the current principal matches the principal specified by the current permission.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Bestimmt, ob das angegebene PrincipalPermission-Objekt der aktuellen PrincipalPermission entspricht.Determines whether the specified PrincipalPermission object is equal to the current PrincipalPermission.

FromXml(SecurityElement) FromXml(SecurityElement) FromXml(SecurityElement) FromXml(SecurityElement)

Stellt eine Berechtigung mit einem angegebenen Zustand aus einer XML-Codierung wieder her.Reconstructs a permission with a specified state from an XML encoding.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Ruft einen Hashcode für das PrincipalPermission-Objekt ab, das sich für die Verwendung in Hashalgorithmen und Datenstrukturen eignet, z.B. in einer Hashtabelle.Gets a hash code for the PrincipalPermission object that is suitable for use in hashing algorithms and data structures such as a hash table.

GetType() GetType() GetType() GetType()

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

(Inherited from Object)
Intersect(IPermission) Intersect(IPermission) Intersect(IPermission) Intersect(IPermission)

Erstellt eine Berechtigung als Schnittmenge der aktuellen und der angegebenen Berechtigung und gibt diese zurück.Creates and returns a permission that is the intersection of the current permission and the specified permission.

IsSubsetOf(IPermission) IsSubsetOf(IPermission) IsSubsetOf(IPermission) IsSubsetOf(IPermission)

Bestimmt, ob die aktuelle Berechtigung eine Teilmenge der angegebenen Berechtigung ist.Determines whether the current permission is a subset of the specified permission.

IsUnrestricted() IsUnrestricted() IsUnrestricted() IsUnrestricted()

Gibt einen Wert zurück, der angibt, ob die aktuelle Berechtigung uneingeschränkt ist.Returns a value indicating whether the current permission is unrestricted.

MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

Erstellt eine Zeichenfolge, die die aktuelle Berechtigung darstellt, und gibt diese zurück.Creates and returns a string representing the current permission.

ToXml() ToXml() ToXml() ToXml()

Erstellt eine XML-Codierung der Berechtigung und ihres aktuellen Zustands.Creates an XML encoding of the permission and its current state.

Union(IPermission) Union(IPermission) Union(IPermission) Union(IPermission)

Erstellt eine Berechtigung als Kombination der aktuellen und der angegebenen Berechtigung.Creates a permission that is the union of the current permission and the specified permission.

Gilt für:

Siehe auch