SecurityState Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Proporciona una clase base para solicitar el estado de seguridad de una acción desde el AppDomainManager objeto .
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
- Herencia
-
SecurityState
- Derivado
- Atributos
Ejemplos
En el ejemplo siguiente se muestra cómo invalidar la SecurityState clase .
[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");
}
}
Comentarios
Debe heredar de esta clase para proporcionar una clase que incluya una propiedad que especifique la acción confidencial de seguridad que se va a realizar. El SecurityState objeto al que se crea una instancia de la clase derivada se pasa al AppDomainManager.CheckSecuritySettings método para determinar si el host permite que se realice esa acción. La implementación predeterminada del CheckSecuritySettings método siempre devuelve false. El método debe invalidarse para detectar las acciones permitidas.
Por ejemplo, si desea acceder a una cámara web en el código de biblioteca, creará un WebcamSecurityState objeto y llamará al EnsureState método para determinar si el host permite el acceso a la cámara web, como se muestra en el ejemplo siguiente. (Puede encontrar el código para WebcamSecurityState en la sección "Ejemplo".
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 procesar la llamada AppDomainManager , se debe tener en cuenta a través de WebcamSecurityState una invalidación del AppDomainManager.CheckSecuritySettings método , como se muestra en el ejemplo siguiente.
[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;
}
Constructores
| Nombre | Description |
|---|---|
| SecurityState() |
Inicializa una nueva instancia de la clase SecurityState. |
Métodos
| Nombre | Description |
|---|---|
| EnsureState() |
Cuando se invalida en una clase derivada, garantiza que el estado representado por SecurityState está disponible en el host. |
| Equals(Object) |
Determina si el objeto especificado es igual al objeto actual. (Heredado de Object) |
| GetHashCode() |
Actúa como la función hash predeterminada. (Heredado de Object) |
| GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
| IsStateAvailable() |
Obtiene un valor que indica si el estado de esta implementación de la SecurityState clase está disponible en el host actual. |
| MemberwiseClone() |
Crea una copia superficial del Objectactual. (Heredado de Object) |
| ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |