Freigeben über


PrincipalPermission Klasse

Definition

Achtung

Code Access Security is not supported or honored by the runtime.

Ermöglicht Überprüfungen des aktiven Prinzipals (siehe IPrincipal) mithilfe der für deklarative und imperative Sicherheitsaktionen definierten Sprachkonstrukte. Diese Klasse kann nicht geerbt werden.

public ref class PrincipalPermission sealed : System::Security::IPermission, System::Security::Permissions::IUnrestrictedPermission
[System.Obsolete("Code Access Security is not supported or honored by the runtime.", DiagnosticId="SYSLIB0003", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
public sealed class PrincipalPermission : System.Security.IPermission, System.Security.Permissions.IUnrestrictedPermission
[System.Serializable]
public sealed class PrincipalPermission : System.Security.IPermission, System.Security.Permissions.IUnrestrictedPermission
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class PrincipalPermission : System.Security.IPermission, System.Security.Permissions.IUnrestrictedPermission
public sealed class PrincipalPermission : System.Security.IPermission, System.Security.Permissions.IUnrestrictedPermission
[<System.Obsolete("Code Access Security is not supported or honored by the runtime.", DiagnosticId="SYSLIB0003", UrlFormat="https://aka.ms/dotnet-warnings/{0}")>]
type PrincipalPermission = class
    interface IPermission
    interface ISecurityEncodable
    interface IUnrestrictedPermission
[<System.Serializable>]
type PrincipalPermission = class
    interface IPermission
    interface IUnrestrictedPermission
    interface ISecurityEncodable
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type PrincipalPermission = class
    interface IPermission
    interface IUnrestrictedPermission
    interface ISecurityEncodable
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type PrincipalPermission = class
    interface IPermission
    interface ISecurityEncodable
    interface IUnrestrictedPermission
type PrincipalPermission = class
    interface IPermission
    interface ISecurityEncodable
    interface IUnrestrictedPermission
Public NotInheritable Class PrincipalPermission
Implements IPermission, IUnrestrictedPermission
Vererbung
PrincipalPermission
Attribute
Implementiert

Beispiele

Im folgenden Beispiel muss der aktive Prinzipal ein Administrator sein. Der parameter name ist null, wodurch jeder Benutzer, der administrator ist, die Anforderung übergeben kann.

Anmerkung

In Windows Vista bestimmt die Benutzerkontensteuerung (User Account Control, UAC) die Berechtigungen eines Benutzers. Wenn Sie Mitglied der Gruppe "Integrierte Administratoren" sind, werden Ihnen zwei Laufzeitzugriffstoken zugewiesen: ein Standardbenutzerzugriffstoken und ein Administratorzugriffstoken. Standardmäßig befinden Sie sich in der Standardbenutzerrolle. Um den Code auszuführen, der erfordert, dass Sie Administrator sein müssen, müssen Sie zuerst Ihre Berechtigungen von Standardbenutzern zu Administrator erhöhen. Sie können dies tun, wenn Sie eine Anwendung starten, indem Sie mit der rechten Maustaste auf das Anwendungssymbol klicken und angeben, dass Sie als Administrator ausführen möchten.

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

Vorsicht

Code Access Security (CAS) ist in allen Versionen von .NET Framework und .NET veraltet. Aktuelle Versionen von .NET berücksichtigen keine CAS-Anmerkungen und erzeugen Fehler, wenn CAS-bezogene APIs verwendet werden. Entwickler sollten alternative Mittel zum Ausführen von Sicherheitsaufgaben suchen.

Durch das Übergeben von Identitätsinformationen (Benutzername und Rolle) an den Konstruktor können PrincipalPermission verwendet werden, um zu verlangen, dass die Identität des aktiven Prinzipals mit diesen Informationen übereinstimmt.

Um dem aktiven IPrincipal und dem zugeordneten IIdentityzu entsprechen, muss sowohl die angegebene Identität als auch die rolle übereinstimmen. Wenn null Identitätszeichenfolge verwendet wird, wird sie als Anforderung interpretiert, um einer Identität zu entsprechen. Die Verwendung von null Rollenzeichenfolge entspricht jeder Rolle. ImPlikation entspricht die Übergabe null Parameters für name oder role an PrincipalPermission der Identität und den Rollen in allen IPrincipal. Es ist auch möglich, eine PrincipalPermission zu erstellen, die nur bestimmt, ob die IIdentity eine authentifizierte oder nicht authentifizierte Entität darstellt. In diesem Fall werden name und role ignoriert.

Im Gegensatz zu den meisten anderen Berechtigungen erweitert PrincipalPermission nicht CodeAccessPermission. Sie implementiert jedoch die IPermission Schnittstelle. Dies liegt daran, dass PrincipalPermission keine Codezugriffsberechtigung ist; d. h., sie wird nicht basierend auf der Identität der ausgeführten Assembly gewährt. Stattdessen ermöglicht es Code, Aktionen (Demand, Union, Intersectusw.) mit der aktuellen Benutzeridentität in übereinstimmung mit der Art und Weise auszuführen, wie diese Aktionen für Codezugriffs- und Codeidentitätsberechtigungen ausgeführt werden.

Wichtig

Vor der Anforderung einer Prinzipalberechtigung ist es erforderlich, die Prinzipalrichtlinie der aktuellen Anwendungsdomäne auf den Enumerationswert WindowsPrincipalfestzulegen. Standardmäßig ist die Prinzipalrichtlinie auf UnauthenticatedPrincipalfestgelegt. Wenn Sie die Prinzipalrichtlinie nicht auf WindowsPrincipalfestlegen, schlägt eine Anforderung für die Prinzipalberechtigung fehl. Der folgende Code sollte ausgeführt werden, bevor die Prinzipalberechtigung angefordert wird:

AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal).

Konstruktoren

PrincipalPermission(PermissionState)
Veraltet.

Initialisiert eine neue Instanz der PrincipalPermission Klasse mit dem angegebenen PermissionState.

PrincipalPermission(String, String, Boolean)
Veraltet.

Initialisiert eine neue Instanz der PrincipalPermission Klasse für die angegebene name, roleund den Authentifizierungsstatus.

PrincipalPermission(String, String)
Veraltet.

Initialisiert eine neue Instanz der PrincipalPermission Klasse für die angegebene name und role.

Methoden

Copy()
Veraltet.

Erstellt und gibt eine identische Kopie der aktuellen Berechtigung zurück.

Demand()
Veraltet.

Bestimmt zur Laufzeit, ob der aktuelle Prinzipal dem von der aktuellen Berechtigung angegebenen Prinzipal entspricht.

Equals(Object)
Veraltet.

Bestimmt, ob das angegebene PrincipalPermission -Objekt dem aktuellen PrincipalPermissionentspricht.

Equals(Object)
Veraltet.

Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht.

(Geerbt von Object)
FromXml(SecurityElement)
Veraltet.

Rekonstruiert eine Berechtigung mit einem angegebenen Zustand aus einer XML-Codierung.

GetHashCode()
Veraltet.

Ruft einen Hashcode für das PrincipalPermission-Objekt ab, das für die Verwendung in Hashingalgorithmen und Datenstrukturen wie einer Hashtabelle geeignet ist.

GetHashCode()
Veraltet.

Dient als Standardhashfunktion.

(Geerbt von Object)
GetType()
Veraltet.

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
Intersect(IPermission)
Veraltet.

Erstellt und gibt eine Berechtigung zurück, die die Schnittmenge der aktuellen Berechtigung und die angegebene Berechtigung darstellt.

IsSubsetOf(IPermission)
Veraltet.

Bestimmt, ob die aktuelle Berechtigung eine Teilmenge der angegebenen Berechtigung ist.

IsUnrestricted()
Veraltet.

Gibt einen Wert zurück, der angibt, ob die aktuelle Berechtigung uneingeschränkt ist.

MemberwiseClone()
Veraltet.

Erstellt eine flache Kopie der aktuellen Object.

(Geerbt von Object)
ToString()
Veraltet.

Erstellt und gibt eine Zeichenfolge zurück, die die aktuelle Berechtigung darstellt.

ToXml()
Veraltet.

Erstellt eine XML-Codierung der Berechtigung und des aktuellen Zustands.

Union(IPermission)
Veraltet.

Erstellt eine Berechtigung, die die Union der aktuellen Berechtigung und der angegebenen Berechtigung ist.

Gilt für:

Weitere Informationen