SecurityState Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Biedt een basisklasse voor het aanvragen van de beveiligingsstatus van een actie van het 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
- Overname
-
SecurityState
- Afgeleid
- Kenmerken
Voorbeelden
In het volgende voorbeeld ziet u hoe u de SecurityState klasse overschrijft.
[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");
}
}
Opmerkingen
U moet overnemen van deze klasse om een klasse te bieden die een eigenschap bevat waarmee de beveiligingsgevoelige actie wordt opgegeven die moet worden uitgevoerd. Het SecurityState object dat wordt geïnstantieerd van de afgeleide klasse, wordt doorgegeven aan de AppDomainManager.CheckSecuritySettings methode om te bepalen of de host toestaat dat deze actie wordt uitgevoerd. De standaard implementatie van de CheckSecuritySettings methode retourneert falsealtijd . De methode moet worden overschreven om de toegestane acties te detecteren.
Als u bijvoorbeeld toegang wilt krijgen tot een webcamera in uw bibliotheekcode, maakt u een WebcamSecurityState object en roept u de EnsureState methode aan om te bepalen of de host toegang tot webcamera's toestaat, zoals wordt weergegeven in het volgende voorbeeld. (U vindt de code in WebcamSecurityState de sectie Voorbeeld.)
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);
}
Als u de aanroep wilt verwerken, moet u AppDomainManager rekening houden WebcamSecurityState met een onderdrukking van de AppDomainManager.CheckSecuritySettings methode, zoals wordt weergegeven in het volgende voorbeeld.
[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;
}
Constructors
| Name | Description |
|---|---|
| SecurityState() |
Initialiseert een nieuw exemplaar van de SecurityState klasse. |
Methoden
| Name | Description |
|---|---|
| EnsureState() |
Wanneer deze wordt overschreven in een afgeleide klasse, zorgt u ervoor dat de status die wordt vertegenwoordigd door SecurityState de host beschikbaar is. |
| Equals(Object) |
Bepaalt of het opgegeven object gelijk is aan het huidige object. (Overgenomen van Object) |
| GetHashCode() |
Fungeert als de standaardhashfunctie. (Overgenomen van Object) |
| GetType() |
Hiermee haalt u de Type huidige instantie op. (Overgenomen van Object) |
| IsStateAvailable() |
Hiermee wordt een waarde opgehaald die aangeeft of de status voor deze implementatie van de SecurityState klasse beschikbaar is op de huidige host. |
| MemberwiseClone() |
Hiermee maakt u een ondiepe kopie van de huidige Object. (Overgenomen van Object) |
| ToString() |
Retourneert een tekenreeks die het huidige object vertegenwoordigt. (Overgenomen van Object) |