SecurityState Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Stellt eine Basisklasse zum Anfordern des Sicherheitsstatus einer Aktion aus dem AppDomainManager Objekt bereit.
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
- Vererbung
-
SecurityState
- Abgeleitet
- Attribute
Beispiele
Das folgende Beispiel zeigt, wie sie die SecurityState Klasse überschreiben.
[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");
}
}
Hinweise
Sie müssen von dieser Klasse erben, um eine Klasse bereitzustellen, die eine Eigenschaft enthält, die die auszuführende sicherheitsrelevante Aktion angibt. Das SecurityState Objekt, das von der abgeleiteten Klasse instanziiert wird, wird an die AppDomainManager.CheckSecuritySettings Methode übergeben, um zu bestimmen, ob der Host die Ausführung dieser Aktion zulässt. Die Standardimplementierung der CheckSecuritySettings Methode gibt immer zurück false. Die Methode muss überschrieben werden, um die zulässigen Aktionen zu erkennen.
Wenn Sie beispielsweise in Ihrem Bibliothekscode auf eine Webkamera zugreifen möchten, erstellen Sie ein WebcamSecurityState Objekt und rufen die EnsureState Methode auf, um zu bestimmen, ob der Host den Webkamerazugriff zulässt, wie im folgenden Beispiel gezeigt. (Sie finden den Code im WebcamSecurityState Abschnitt "Beispiel".)
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);
}
Um den Aufruf zu verarbeiten, muss er AppDomainManager über eine Außerkraftsetzung der AppDomainManager.CheckSecuritySettings Methode informiert WebcamSecurityState werden, wie im folgenden Beispiel gezeigt.
[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;
}
Konstruktoren
| Name | Beschreibung |
|---|---|
| SecurityState() |
Initialisiert eine neue Instanz der SecurityState-Klasse. |
Methoden
| Name | Beschreibung |
|---|---|
| EnsureState() |
Wenn sie in einer abgeleiteten Klasse überschrieben wird, wird sichergestellt, dass der zustand, der dargestellt wird, SecurityState auf dem Host verfügbar ist. |
| Equals(Object) |
Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist. (Geerbt von Object) |
| GetHashCode() |
Dient als Standardhashfunktion. (Geerbt von Object) |
| GetType() |
Ruft die Type der aktuellen Instanz ab. (Geerbt von Object) |
| IsStateAvailable() |
Ruft einen Wert ab, der angibt, ob der Status für diese Implementierung der SecurityState Klasse auf dem aktuellen Host verfügbar ist. |
| MemberwiseClone() |
Erstellt eine flache Kopie der aktuellen Object. (Geerbt von Object) |
| ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |