Condividi tramite


SecurityState Classe

Definizione

Fornisce una classe base per richiedere lo stato di sicurezza di un'azione dall'oggetto 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
Ereditarietà
SecurityState
Derivato
Attributi

Esempio

Nell'esempio seguente viene illustrato come eseguire l'override della 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");  
    }  
}    

Commenti

È necessario ereditare da questa classe per fornire una classe che include una proprietà che specifica l'azione sensibile alla sicurezza da eseguire. L'oggetto SecurityState di cui viene creata un'istanza dalla classe derivata viene passato al AppDomainManager.CheckSecuritySettings metodo per determinare se l'host consente l'esecuzione di tale azione. L'implementazione predefinita del CheckSecuritySettings metodo restituisce falsesempre . Il metodo deve essere sottoposto a override per rilevare le azioni consentite.

Ad esempio, se si vuole accedere a una fotocamera Web nel codice della libreria, creare un WebcamSecurityState oggetto e chiamare il EnsureState metodo per determinare se l'host consente l'accesso alla fotocamera Web, come illustrato nell'esempio seguente. È possibile trovare il codice per WebcamSecurityState nella sezione "Esempio".

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);  
}  

Per elaborare la chiamata, AppDomainManager è necessario tenere presente WebcamSecurityState tramite un override del AppDomainManager.CheckSecuritySettings metodo , come illustrato nell'esempio seguente.

[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;  
}   

Costruttori

SecurityState()

Inizializza una nuova istanza della classe SecurityState.

Metodi

EnsureState()

Quando è sottoposto a override in una classe derivata, assicura che lo stato rappresentato da SecurityState sia disponibile nell'host.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
IsStateAvailable()

Ottiene un valore che indica se lo stato di questa implementazione della classe SecurityState è disponibile nell'host corrente.

MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Si applica a