SecurityState Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Egy alaposztályt biztosít egy művelet biztonsági állapotának az objektumból AppDomainManager való lekéréséhez.
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
- Öröklődés
-
SecurityState
- Származtatott
- Attribútumok
Példák
Az alábbi példa bemutatja, hogyan bírálhatja felül az osztályt SecurityState .
[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");
}
}
Megjegyzések
Az osztálytól öröklődve kell megadnia egy olyan osztályt, amely tartalmaz egy tulajdonságot, amely meghatározza a végrehajtandó biztonsági szempontból érzékeny műveletet. A SecurityState származtatott osztályból példányosított objektumot a rendszer átadja a AppDomainManager.CheckSecuritySettings metódusnak annak megállapításához, hogy a gazdagép engedélyezi-e a művelet végrehajtását. A metódus alapértelmezett implementációja CheckSecuritySettings mindig ad vissza false. A metódust felül kell bírálni az engedélyezett műveletek észleléséhez.
Ha például egy webkamerát szeretne elérni a kódtár kódjában, létre kell hoznia egy WebcamSecurityState objektumot, és meghívja a EnsureState metódust annak megállapítására, hogy a gazdagép engedélyezi-e a webes kamera elérését, ahogyan az alábbi példában is látható. (A kód WebcamSecurityState a "Példa" szakaszban található.)
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);
}
A hívás feldolgozásához fel kell hívni a AppDomainManager figyelmét WebcamSecurityState a AppDomainManager.CheckSecuritySettings metódus felülbírálásával, ahogy az az alábbi példában is látható.
[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;
}
Konstruktorok
| Name | Description |
|---|---|
| SecurityState() |
Inicializálja a SecurityState osztály új példányát. |
Metódusok
| Name | Description |
|---|---|
| EnsureState() |
Ha egy származtatott osztályban felül van bírálva, biztosítja, hogy az általa SecurityState képviselt állapot elérhető legyen a gazdagépen. |
| Equals(Object) |
Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal. (Öröklődés forrása Object) |
| GetHashCode() |
Ez az alapértelmezett kivonatoló függvény. (Öröklődés forrása Object) |
| GetType() |
Lekéri az Type aktuális példányt. (Öröklődés forrása Object) |
| IsStateAvailable() |
Egy értéket kap, amely jelzi, hogy az osztály implementációjának SecurityState állapota elérhető-e az aktuális gazdagépen. |
| MemberwiseClone() |
Az aktuális Objectpéldány sekély másolatát hozza létre. (Öröklődés forrása Object) |
| ToString() |
Az aktuális objektumot jelképező sztringet ad vissza. (Öröklődés forrása Object) |