Partager via


PrincipalPermission Classe

Définition

Attention

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

Autorise les vérifications par rapport au principal actif (consultez IPrincipal) à l’aide de constructions de langage définies à la fois pour les actions de sécurité déclaratives et impératives. Cette classe ne peut pas être héritée.

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
Héritage
PrincipalPermission
Attributs
Implémente

Exemples

L’exemple suivant exige que le principal actif soit un administrateur. Le name paramètre est null, ce qui permet à tout utilisateur administrateur de passer la demande.

Notes

Dans Windows Vista, le contrôle de compte d'utilisateur détermine les privilèges d'un utilisateur. Si vous êtes membre du groupe Administrateurs intégrés, deux jetons d'accès au moment de l'exécution vous sont assignés : un jeton d'accès utilisateur standard et un jeton d'accès administrateur. Par défaut, vous êtes dans le rôle d'utilisateur standard. Pour exécuter le code nécessitant que vous soyez administrateur, vous devez d'abord élever vos privilèges d'utilisateur standard à administrateur. Vous pouvez effectuer cela au démarrage d'une application en cliquant avec le bouton droit sur l'icône de l'application et en indiquant que vous voulez l'exécuter en tant qu'administrateur.

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

Remarques

Attention

La sécurité d’accès du code (CAS) a été déconseillée dans toutes les versions du .NET Framework et de .NET. Les versions récentes de .NET ne respectent pas les annotations CAS et produisent des erreurs si les API liées à CAS sont utilisées. Les développeurs doivent chercher d’autres moyens pour accomplir les tâches liées à la sécurité.

En passant des informations d’identité (nom d’utilisateur et rôle) au constructeur, PrincipalPermission vous pouvez utiliser pour exiger que l’identité du principal actif corresponde à ces informations.

Pour faire correspondre les valeurs actives IPrincipal et associées IIdentity, l’identité et le rôle spécifiés doivent correspondre. Si null la chaîne d’identité est utilisée, elle est interprétée comme une demande de correspondance avec une identité. L’utilisation de la chaîne de null rôle correspond à n’importe quel rôle. Par implication, le passage null du paramètre pour name ou role à correspondra à PrincipalPermission l’identité et aux rôles dans n’importe quel IPrincipal. Il est également possible de construire un PrincipalPermission qui détermine uniquement si représente IIdentity une entité authentifiée ou non authentifiée. Dans ce cas, name et role sont ignorés.

Contrairement à la plupart des autres autorisations, PrincipalPermission n’étend CodeAccessPermissionpas . Toutefois, il implémente l’interface IPermission . En effet, il PrincipalPermission ne s’agit pas d’une autorisation d’accès au code ; autrement dit, elle n’est pas accordée en fonction de l’identité de l’assembly en cours d’exécution. Au lieu de cela, il permet au code d’effectuer des actions (Demand, Union, Intersectet ainsi de suite) sur l’identité utilisateur actuelle d’une manière cohérente avec la façon dont ces actions sont effectuées pour l’accès au code et les autorisations d’identité de code.

Important

Avant une demande d’autorisation de principal, il est nécessaire de définir la stratégie principale du domaine d’application actuel sur la valeur WindowsPrincipald’énumération . Par défaut, la stratégie principale est définie sur UnauthenticatedPrincipal. Si vous ne définissez pas la stratégie de principal sur WindowsPrincipal, une demande d’autorisation de principal échoue. Le code suivant doit être exécuté avant que l’autorisation principale ne soit demandée :

AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal).

Constructeurs

PrincipalPermission(PermissionState)
Obsolète.

Initialise une nouvelle instance de la classe PrincipalPermission avec le PermissionState spécifié.

PrincipalPermission(String, String)
Obsolète.

Initialise une nouvelle instance de la classe PrincipalPermission pour les name et role spécifiés.

PrincipalPermission(String, String, Boolean)
Obsolète.

Initialise une nouvelle instance de la classe PrincipalPermission pour les name, role et état d’authentification spécifiés.

Méthodes

Copy()
Obsolète.

Crée et retourne une copie identique de l’autorisation actuelle.

Demand()
Obsolète.

Détermine au moment de l’exécution si le principal actuel correspond au principal spécifié par l’autorisation actuelle.

Equals(Object)
Obsolète.

Détermine si l'objet PrincipalPermission spécifié est égal à PrincipalPermission en cours.

Equals(Object)
Obsolète.

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
FromXml(SecurityElement)
Obsolète.

Reconstruit une autorisation avec un état spécifié à partir d’un encodage XML.

GetHashCode()
Obsolète.

Obtient un code de hachage pour l’objet PrincipalPermission qui peut être utilisé dans des structures de données et des algorithmes de hachage, comme une table de hachage.

GetHashCode()
Obsolète.

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetType()
Obsolète.

Obtient le Type de l'instance actuelle.

(Hérité de Object)
Intersect(IPermission)
Obsolète.

Crée et retourne une autorisation qui constitue l’intersection entre l’autorisation actuelle et l’autorisation spécifiée.

IsSubsetOf(IPermission)
Obsolète.

Détermine si l’autorisation actuelle est un sous-ensemble de l’autorisation spécifiée.

IsUnrestricted()
Obsolète.

Retourne une valeur qui indique si l’autorisation actuelle est illimitée.

MemberwiseClone()
Obsolète.

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ToString()
Obsolète.

Crée et retourne une chaîne représentant l’autorisation actuelle.

ToXml()
Obsolète.

Crée un encodage XML de l’autorisation et de son état actuel.

Union(IPermission)
Obsolète.

Crée une autorisation qui est l’union de l’autorisation actuelle et de l’autorisation spécifiée.

S’applique à

Voir aussi