Share via


PrincipalPermission Klasse

Definition

Achtung

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

Lässt Vergleiche mit dem aktiven Prinzipal (siehe IPrincipal) mithilfe der Sprachkonstrukte zu, die für beide deklarative und imperative Sicherheitsaktionen definiert sind. Diese Klasse kann nicht vererbt werden.

public ref class PrincipalPermission sealed : 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}")]
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
type PrincipalPermission = class
    interface IPermission
    interface ISecurityEncodable
    interface 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
Public NotInheritable Class PrincipalPermission
Implements IPermission, IUnrestrictedPermission
Vererbung
PrincipalPermission
Attribute
Implementiert

Beispiele

Im folgenden Beispiel muss der aktive Prinzipal administrator sein. Der name Parameter ist null, sodass jeder Benutzer, der administrator ist, die Anforderung übergeben kann.

Hinweis

Unter Windows Vista werden die Berechtigungen eines Benutzers über die Benutzerkontensteuerung (User Account Control, UAC) bestimmt. Als Mitglied der integrierten Administratorgruppe sind Ihnen zwei Zugriffstoken für die Laufzeit zugewiesen: ein Standardbenutzertoken und ein Administratorzugriffstoken. Standardmäßig verwenden Sie die Standardbenutzerrolle. Um Code ausführen zu können, der Administratorberechtigungen erfordert, müssen Sie zuerst Ihre Berechtigungen von Standardbenutzer auf Administrator erhöhen. 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.

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

Achtung

Die Codezugriffssicherheit (CAS, Code Access Security) 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*innen sollten alternative Mittel zum Ausführen von Sicherheitsaufgaben suchen.

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

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

Im Gegensatz zu den meisten anderen Berechtigungen wird PrincipalPermission nicht erweitert CodeAccessPermission. Es implementiert jedoch die IPermission -Schnittstelle. Dies liegt daran, dass PrincipalPermission keine Codezugriffsberechtigung ist, d. h., sie wird nicht basierend auf der Identität der ausführenden Assembly erteilt. Stattdessen ermöglicht es Code, Aktionen (Demand, Union, Intersectusw.) für die aktuelle Benutzeridentität auf eine Weise auszuführen, die mit der Art und Weise übereinstimmt, 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 die Anforderung der 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 der angegebenen PermissionState.

PrincipalPermission(String, String)
Veraltet.

Initialisiert eine neue Instanz der PrincipalPermission-Klasse für den angegebenen name und role.

PrincipalPermission(String, String, Boolean)
Veraltet.

Initialisiert eine neue Instanz der PrincipalPermission-Klasse für den angegebenen name, role und den Authentifizierungsstatus.

Methoden

Copy()
Veraltet.

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

Demand()
Veraltet.

Bestimmt zur Laufzeit, ob der aktuelle Prinzipal mit dem durch die aktuelle Berechtigung angegebenen Prinzipal übereinstimmt.

Equals(Object)
Veraltet.

Bestimmt, ob das angegebene PrincipalPermission-Objekt und das aktuelle PrincipalPermission-Objekt gleich sind.

Equals(Object)
Veraltet.

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
FromXml(SecurityElement)
Veraltet.

Stellt eine Berechtigung mit einem angegebenen Zustand aus einer XML-Codierung wieder her.

GetHashCode()
Veraltet.

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.

GetHashCode()
Veraltet.

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()
Veraltet.

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
Intersect(IPermission)
Veraltet.

Erstellt eine Berechtigung als Schnittmenge der aktuellen und der angegebenen Berechtigung und gibt diese zurück.

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 des aktuellen Object.

(Geerbt von Object)
ToString()
Veraltet.

Erstellt eine Zeichenfolgendarstellung der aktuellen Berechtigung und gibt diese zurück.

ToXml()
Veraltet.

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

Union(IPermission)
Veraltet.

Erstellt eine Berechtigung als Kombination der aktuellen und der angegebenen Berechtigung.

Gilt für:

Weitere Informationen