SecurityState Classe

Definição

Fornece uma classe base para solicitar o status de segurança de uma ação do objeto AppDomainManager.Provides a base class for requesting the security status of an action from the AppDomainManager object.

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
Herança
SecurityState
Derivado
Atributos

Exemplos

O exemplo a seguir mostra como substituir a SecurityState classe.The following example shows how to override the SecurityState class.

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

Comentários

Você deve herdar dessa classe para fornecer uma classe que inclua uma propriedade que especifique a ação sensível à segurança a ser executada.You must inherit from this class to provide a class that includes a property that specifies the security-sensitive action to be performed. O SecurityState objeto que é instanciado da classe derivada é passado para o AppDomainManager.CheckSecuritySettings método para determinar se o host permite que essa ação seja executada.The SecurityState object that is instantiated from the derived class is passed to the AppDomainManager.CheckSecuritySettings method to determine whether the host allows that action to be performed. A implementação padrão do CheckSecuritySettings método sempre retorna false .The default implementation of the CheckSecuritySettings method always returns false. O método deve ser substituído para detectar as ações que são permitidas.The method must be overridden to detect the actions that are allowed.

Por exemplo, se você quiser acessar uma câmera da Web no código de biblioteca, crie um WebcamSecurityState objeto e chame o EnsureState método para determinar se o host permite o acesso à câmera da Web, conforme mostrado no exemplo a seguir.For example, if you want to access a Web camera in your library code, you would create a WebcamSecurityState object and call the EnsureState method to determine whether the host allows Web camera access, as shown in the following example. (Você pode encontrar o código para WebcamSecurityState na seção "exemplo".)(You can find the code for WebcamSecurityState in the "Example" section.)

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

Para processar a chamada AppDomainManager , o deve ser considerado WebcamSecurityState com uma substituição do AppDomainManager.CheckSecuritySettings método, conforme mostrado no exemplo a seguir.To process the call the AppDomainManager must be made aware of WebcamSecurityState through an override of the AppDomainManager.CheckSecuritySettings method, as shown in the following example.

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

Construtores

SecurityState()

Inicializa uma nova instância da classe SecurityState.Initializes a new instance of the SecurityState class.

Métodos

EnsureState()

Quando substituído em uma classe derivada, garante que o estado representado por SecurityState esteja disponível no host.When overridden in a derived class, ensures that the state that is represented by SecurityState is available on the host.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.Determines whether the specified object is equal to the current object.

(Herdado de Object)
GetHashCode()

Serve como a função de hash padrão.Serves as the default hash function.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.Gets the Type of the current instance.

(Herdado de Object)
IsStateAvailable()

Obtém um valor que indica se o estado para essa implementação da classe SecurityState está disponível no host atual.Gets a value that indicates whether the state for this implementation of the SecurityState class is available on the current host.

MemberwiseClone()

Cria uma cópia superficial do Object atual.Creates a shallow copy of the current Object.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.Returns a string that represents the current object.

(Herdado de Object)

Aplica-se a