SecurityState Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Fournit une classe de base pour demander l'état de sécurité d'une action à 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é à partir de la classe dérivée est passé à la AppDomainManager.CheckSecuritySettings méthode pour déterminer si l’hôte autorise l’exécution de cette action. L’implémentation par défaut de la CheckSecuritySettings méthode retourne false
toujours . La méthode doit être remplacée pour détecter les actions autorisées.
Par exemple, si vous souhaitez accéder à une caméra Web dans le code de votre bibliothèque, vous devez créer un WebcamSecurityState
objet et appeler 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 pour WebcamSecurityState
dans 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 AppDomainManager , le doit être pris en compte WebcamSecurityState
via un 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
SecurityState() |
Initialise une nouvelle instance de la classe SecurityState. |
Méthodes
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() |
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) |
IsStateAvailable() |
Obtient une valeur qui indique si l'état pour cette implémentation de la classe SecurityState est disponible sur l'hôte actuel. |
MemberwiseClone() |
Crée une copie superficielle du Object actuel. (Hérité de Object) |
ToString() |
Retourne une chaîne qui représente l'objet actuel. (Hérité de Object) |