SecurityState Classe

Définition

Fournit une classe de base pour demander l’état de sécurité d’une action à partir de l’objet AppDomainManager .

public ref class SecurityState abstract
public abstract class SecurityState
[System.Security.SecurityCritical]
public abstract class SecurityState
type SecurityState = class
[<System.Security.SecurityCritical>]
type SecurityState = class
Public MustInherit Class SecurityState
Héritage
SecurityState
Dérivé
Attributs

Exemples

L’exemple suivant montre comment remplacer la SecurityState classe.

[SecurityCritical]
public enum WebcamSecurityOptions
{
    SafeAccess,
    FullAccess
}
[SecurityCritical]
public class WebcamSecurityState : SecurityState
{
    public WebcamSecurityState(string description, WebcamSecurityOptions options)
    {
        Options = options;
        Description = description;
    }
    public WebcamSecurityOptions Options { get; set; }
    public string Description { get; set; }
    public override void EnsureState()
    {
        if (!IsStateAvailable())
            throw new ApplicationException("WebcamSecurityState not available");
    }
}

Remarques

Vous devez hériter de cette classe pour fournir une classe qui inclut une propriété qui spécifie l’action sensible à la sécurité à effectuer. L’objet SecurityState instancié de la classe dérivée est passé à la AppDomainManager.CheckSecuritySettings méthode pour déterminer si l’hôte autorise cette action à effectuer. L’implémentation par défaut de la CheckSecuritySettings méthode retourne falsetoujours . La méthode doit être substituée pour détecter les actions autorisées.

Par exemple, si vous souhaitez accéder à une caméra Web dans votre code de bibliothèque, vous créez un WebcamSecurityState objet et appelez la EnsureState méthode pour déterminer si l’hôte autorise l’accès à la caméra web, comme illustré dans l’exemple suivant. (Vous trouverez le code de WebcamSecurityState la section « Exemple ».

var securityState = new WebcamSecurityState("Safe access to Webcam", WebcamSecurityOptions.SafeAccess);
try
{
    securityState.EnsureState();
    // Allocate memory.
}
catch (ApplicationException e)
{
    // Handle any exception that is thrown.
    System.Diagnostics.Debug.WriteLine(e.Message);
}

Pour traiter l’appel, vous AppDomainManager devez prendre connaissance d’un WebcamSecurityState remplacement de la AppDomainManager.CheckSecuritySettings méthode, comme illustré dans l’exemple suivant.

[SecurityCritical]
public override bool CheckSecuritySettings(System.Security.SecurityState securityState)
{
    switch (securityState.ToString())
    {
        case "WebcamSecurityState":
        {
            if ((securityState as WebcamSecurityState).Options == WebcamSecurityOptions.SafeAccess)
                return PromptUser((securityState as WebcamSecurityState).Description);
            return false;
        }
    }
    return false;
}
private bool PromptUser(string text)
{
    // Replace the OpenFileDialog with a custom user prompt.
    OpenFileDialog o = new OpenFileDialog();
    o.Title = text;
    if (o.ShowDialog() == DialogResult.OK)
        return true;
    else
        return false;
}

Constructeurs

Nom Description
SecurityState()

Initialise une nouvelle instance de la classe SecurityState.

Méthodes

Nom Description
EnsureState()

En cas de substitution dans une classe dérivée, garantit que l’état représenté par SecurityState est disponible sur l’hôte.

Equals(Object)

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

(Hérité de Object)
GetHashCode()

Sert de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient la Type de l’instance actuelle.

(Hérité de Object)
IsStateAvailable()

Obtient une valeur qui indique si l’état de cette implémentation de la SecurityState classe est disponible sur l’hôte actuel.

MemberwiseClone()

Crée une copie superficielle du Objectactuel.

(Hérité de Object)
ToString()

Retourne une chaîne qui représente l’objet actuel.

(Hérité de Object)

S’applique à