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

Exemples

L’exemple suivant nécessite que le principal actif soit un administrateur. Le name paramètre est null , qui permet à tout utilisateur qui est un 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

En passant les informations d’identité (nom d’utilisateur et rôle) au constructeur, PrincipalPermission peut être utilisé pour exiger que l’identité du principal actif corresponde à ces informations.

Pour correspondre à l’actif IPrincipal et au associé 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 n’importe quelle identité. L’utilisation de la null chaîne de rôle correspond à n’importe quel rôle. Par implication, null le passage du paramètre pour name ou role à correspond à 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 le IIdentity représente 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 pas CodeAccessPermission . Toutefois, elle implémente l' IPermission interface. Cela est dû au fait que PrincipalPermission n’est pas une autorisation d’accès du 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 ,, etc.) sur Intersect l’identité de l’utilisateur actuel de manière cohérente avec la manière dont ces actions sont effectuées pour l’accès au code et les autorisations d’identité du code.

Important

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

AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal).

Constructeurs

PrincipalPermission(PermissionState)

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

PrincipalPermission(String, String)

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

PrincipalPermission(String, String, Boolean)

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

Méthodes

Copy()

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

Demand()

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

Equals(Object)

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

Equals(Object)

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

(Hérité de Object)
FromXml(SecurityElement)

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

GetHashCode()

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()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
Intersect(IPermission)

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

IsSubsetOf(IPermission)

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

IsUnrestricted()

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

MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ToString()

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

ToXml()

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

Union(IPermission)

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

S’applique à

Voir aussi