SecurityState SecurityState SecurityState SecurityState Class

Definizione

Fornisce una classe base per richiedere lo stato di sicurezza di un'azione dall'oggetto AppDomainManager.Provides a base class for requesting the security status of an action from the AppDomainManager object.

public ref class SecurityState abstract
[System.Security.SecurityCritical]
public abstract class SecurityState
type SecurityState = class
Public MustInherit Class SecurityState
Ereditarietà
SecurityStateSecurityStateSecurityStateSecurityState
Derivato
Attributi

Esempi

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

Commenti

È necessario ereditare da questa classe per fornire una classe che includa una proprietà che specifica l'azione sensibile alla sicurezza da eseguire.You must inherit from this class to provide a class that includes a property that specifies the security-sensitive action to be performed. L' SecurityState oggetto di cui viene creata un'istanza dalla classe derivata viene passato AppDomainManager.CheckSecuritySettings al metodo per determinare se l'host consente l'esecuzione di tale azione.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. L'implementazione predefinita del CheckSecuritySettings metodo restituisce falsesempre.The default implementation of the CheckSecuritySettings method always returns false. Per rilevare le azioni consentite, è necessario eseguire l'override del metodo.The method must be overridden to detect the actions that are allowed.

Se ad esempio si vuole accedere a una fotocamera Web nel codice della libreria, è necessario 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.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. È possibile trovare il codice per WebcamSecurityState nella sezione "esempio".(You can find the code for WebcamSecurityState in the "Example" section.)

WebcamSecurityState 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 che l'oggetto WebcamSecurityState sia in grado di riconoscere AppDomainManager.CheckSecuritySettings tramite un override del metodo, come illustrato nell'esempio seguente.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;  
}  

Costruttori

SecurityState() SecurityState() SecurityState() SecurityState()

Inizializza una nuova istanza della classe SecurityState.Initializes a new instance of the SecurityState class.

Metodi

EnsureState() EnsureState() EnsureState() EnsureState()

Quando è sottoposto a override in una classe derivata, assicura che lo stato rappresentato da SecurityState sia disponibile nell'host.When overridden in a derived class, ensures that the state that is represented by SecurityState is available on the host.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Funge da funzione hash predefinita.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

(Inherited from Object)
IsStateAvailable() IsStateAvailable() IsStateAvailable() IsStateAvailable()

Ottiene un valore che indica se lo stato di questa implementazione della classe SecurityState è disponibile nell'host corrente.Gets a value that indicates whether the state for this implementation of the SecurityState class is available on the current host.

MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.Returns a string that represents the current object.

(Inherited from Object)

Sicurezza

SecurityCriticalAttribute
richiede l'attendibilità totale per il chiamante immediato.requires full trust for the immediate caller. Questa classe non può essere utilizzata da codice parzialmente attendibile o trasparente.This class cannot be used by partially trusted or transparent code.

InheritanceDemand
per l'attendibilità totale per gli eredi.for full trust for inheritors. Questa classe non può essere ereditata da codice parzialmente attendibile.This class cannot be inherited by partially trusted code.

Si applica a