Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. |
Übersetzung
Original
|
UIPermission-Klasse
Steuert die Berechtigungen für Benutzeroberflächen und die Zwischenablage. Diese Klasse kann nicht vererbt werden.
Assembly: mscorlib (in mscorlib.dll)
Der UIPermission-Typ macht die folgenden Member verfügbar.
| Name | Beschreibung | |
|---|---|---|
|
UIPermission(PermissionState) | Initialisiert eine neue Instanz der UIPermission-Klasse, wobei angegeben werden kann, ob für die Instanz eine vollständig eingeschränkte oder eine uneingeschränkte Berechtigung gilt. |
|
UIPermission(UIPermissionClipboard) | Initialisiert eine neue Instanz der UIPermission-Klasse mit den Berechtigungen für die Zwischenablage und ohne Zugriff auf Fenster. |
|
UIPermission(UIPermissionWindow) | Initialisiert eine neue Instanz der UIPermission-Klasse mit den Berechtigungen für Fenster und ohne Zugriff auf die Zwischenablage. |
|
UIPermission(UIPermissionWindow, UIPermissionClipboard) | Initialisiert eine neue Instanz der UIPermission-Klasse mit den angegebenen Berechtigungen für Fenster und Zwischenablage. |
| Name | Beschreibung | |
|---|---|---|
|
Clipboard | Ruft den durch die Berechtigung dargestellten Zwischenablagezugriff ab oder legt diesen fest. |
|
Window | Ruft den durch die Berechtigung dargestellten Fensterzugriff ab oder legt diesen fest. |
| Name | Beschreibung | |
|---|---|---|
|
Assert | Deklariert, dass der aufrufende Code selbst dann auf die durch eine Berechtigungsanforderung geschützte Ressource über den diese Methode aufrufenden Code zugreifen kann, wenn übergeordnete Aufrufer in der Aufrufliste keine Zugriffsberechtigung für die Ressource besitzen. Die Verwendung von Assert kann zu Sicherheitsproblemen führen. (Von CodeAccessPermission geerbt.) |
|
Copy | Erstellt eine identische Kopie der aktuellen Berechtigung und gibt die Kopie zurück. (Überschreibt CodeAccessPermission.Copy().) |
|
Demand | Erzwingt zur Laufzeit eine SecurityException, wenn die von der aktuellen Instanz angegebene Berechtigung keinem übergeordneten Aufrufer in der Aufrufliste gewährt wurde. (Von CodeAccessPermission geerbt.) |
|
Deny | Veraltet. Verhindert, dass übergeordnete Aufrufer in der Aufrufliste auf die von der aktuellen Instanz angegebene Ressource über Code zugreifen, der diese Methode aufruft. (Von CodeAccessPermission geerbt.) |
|
Equals | Bestimmt, ob das angegebene CodeAccessPermission-Objekt und das aktuelle CodeAccessPermission-Objekt gleich sind. (Von CodeAccessPermission geerbt.) |
|
Finalize | Gibt einem Objekt Gelegenheit zu dem Versuch, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der automatische Speicherbereinigung freigegeben wird. (Von Object geerbt.) |
|
FromXml | Rekonstruiert aus einer XML-Codierung eine Berechtigung mit einem angegebenen Zustand. (Überschreibt CodeAccessPermission.FromXml(SecurityElement).) |
|
GetHashCode | Ruft einen Hashcode für das CodeAccessPermission-Objekt ab, das für die Verwendung in Hashalgorithmen und Datenstrukturen wie Hashtabellen geeignet ist. (Von CodeAccessPermission geerbt.) |
|
GetType | Ruft den Type der aktuellen Instanz ab. (Von Object geerbt.) |
|
Intersect | Erstellt eine Berechtigung als Schnittmenge der aktuellen und der angegebenen Berechtigung und gibt diese zurück. (Überschreibt CodeAccessPermission.Intersect(IPermission).) |
|
IsSubsetOf | Bestimmt, ob die aktuelle Berechtigung eine Teilmenge der angegebenen Berechtigung ist. (Überschreibt CodeAccessPermission.IsSubsetOf(IPermission).) |
|
IsUnrestricted | Gibt einen Wert zurück, der angibt, ob die aktuelle Berechtigung uneingeschränkt ist. |
|
MemberwiseClone | Erstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.) |
|
PermitOnly | Verhindert, dass übergeordnete Aufrufer in der Aufrufliste auf alle außer der von der aktuellen Instanz angegebenen Ressource über den Code zugreifen, der diese Methode aufruft. (Von CodeAccessPermission geerbt.) |
|
ToString | Erstellt eine Zeichenfolgenentsprechung des aktuellen Berechtigungsobjekts und gibt diese zurück. (Von CodeAccessPermission geerbt.) |
|
ToXml | Erstellt eine XML-Codierung der Berechtigung und ihres aktuellen Zustands. (Überschreibt CodeAccessPermission.ToXml().) |
|
Union | Erstellt eine Berechtigung, die die Union der Berechtigung und der angegebenen Berechtigung darstellt. (Überschreibt CodeAccessPermission.Union(IPermission).) |
Benutzeroberflächen sind Ausgabeereignisse und Benutzereingabeereignisse in Fenstern.
Die Berechtigung für die Verwendung eines Fensters kann wie folgt lauten: uneingeschränkt, beschränkt auf SafeTopLevelWindows, nur SafeSubWindows oder keine Fensterzeichnung bzw. kein Benutzereingabe-Ereigniszugriff erlaubt. SafeTopLevelWindows und SafeSubWindows sind in Titel und Größe eingeschränkt, um mögliches Spoofing durch potenziell schädlichen Code zu verhindern.
Die Berechtigung für das Verwenden der Zwischenablage kann zu einer der folgenden Kategorien gehören: uneingeschränkt, ausschließlich Schreibzugriff oder kein Zugriff auf die Zwischenablage zugelassen. Die Begrenzung beim Einfügen hindert schädliche Anwendungen daran, Daten ohne Einwilligung des Benutzers aus der Zwischenablage zu nehmen, lässt jedoch die Ausschneide-, Kopier- und Einfügeoperation zu, wenn diese vom Benutzer über Tastaturbefehle ausgelöst werden.
Im folgenden Codebeispiel wird das Verhalten der Methoden der UIPermission-Klasse veranschaulicht.
Hinweis
|
|---|
|
Im Codebeispiel soll das Verhalten der Methoden veranschaulicht werden, auf ihre Verwendung wird jedoch nicht eingegangen. Im Allgemeinen werden die Methoden von Berechtigungsklassen von der Sicherheitsinfrastruktur verwendet und nicht in Anwendungen verwendet. Im Allgemeinen werden nur die Konstruktoren im Anwendungscode verwendet. Die erstellte Instanz überprüft oder kontrolliert den Ressourcenzugriff durch geerbte CodeAccessPermission-Methoden wie Demand. |
using System; using System.Security; using System.Security.Permissions; public class UIPermissionDemo { public static void Main(String[] args) { IsSubsetOfDemo(); CopyDemo(); UnionDemo(); IntersectDemo(); ToFromXmlDemo(); } // IsSubsetOf determines whether the current permission is a subset of the specified permission. private static void IsSubsetOfDemo() { UIPermission uiPerm1 = new UIPermission(UIPermissionWindow.SafeTopLevelWindows); UIPermission uiPerm2 = new UIPermission(UIPermissionWindow.SafeSubWindows); CheckIsSubsetOfWindow(uiPerm1, uiPerm2); uiPerm1 = new UIPermission(UIPermissionClipboard.AllClipboard); uiPerm2 = new UIPermission(UIPermissionClipboard.OwnClipboard); CheckIsSubsetOfClipBoard(uiPerm1, uiPerm2); } private static void CheckIsSubsetOfWindow(UIPermission uiPerm1, UIPermission uiPerm2) { if (uiPerm1.IsSubsetOf(uiPerm2)) { Console.WriteLine(uiPerm1.Window.ToString() + " is a subset of " + uiPerm2.Window.ToString()); } else { Console.WriteLine(uiPerm1.Window.ToString() + " is not a subset of " + uiPerm2.Window.ToString()); } if (uiPerm2.IsSubsetOf(uiPerm1)) { Console.WriteLine(uiPerm2.Window.ToString() + " is a subset of " + uiPerm1.Window.ToString()); } else { Console.WriteLine(uiPerm2.Window.ToString() + " is not a subset of " + uiPerm1.Window.ToString()); } } private static void CheckIsSubsetOfClipBoard(UIPermission uiPerm1, UIPermission uiPerm2) { if (uiPerm1.IsSubsetOf(uiPerm2)) { Console.WriteLine(uiPerm1.Clipboard.ToString() + " is a subset of " + uiPerm2.Clipboard.ToString()); } else { Console.WriteLine(uiPerm1.Clipboard.ToString() + " is not a subset of " + uiPerm2.Clipboard.ToString()); } if (uiPerm2.IsSubsetOf(uiPerm1)) { Console.WriteLine(uiPerm2.Clipboard.ToString() + " is a subset of " + uiPerm1.Clipboard.ToString()); } else { Console.WriteLine(uiPerm2.Clipboard.ToString() + " is not a subset of " + uiPerm1.Clipboard.ToString()); } } // Union creates a new permission that is the union of the current permission // and the specified permission. private static void UnionDemo() { UIPermission uiPerm1 = new UIPermission(UIPermissionWindow.SafeTopLevelWindows); UIPermission uiPerm2 = new UIPermission(UIPermissionWindow.SafeSubWindows); UIPermission p3 = (UIPermission)uiPerm1.Union(uiPerm2); try { if (p3 != null) { Console.WriteLine("The union of " + uiPerm1.Window.ToString() + " and \n\t" + uiPerm2.Window.ToString() + " is \n\t" + p3.Window.ToString() + "\n"); } else { Console.WriteLine("The union of " + uiPerm1.Window.ToString() + " and \n\t" + uiPerm2.Window.ToString() + " is null.\n"); } } catch (SystemException e) { Console.WriteLine("The union of " + uiPerm1.Window.ToString() + " and \n\t" + uiPerm2.Window.ToString() + " failed."); Console.WriteLine(e.Message); } } // Intersect creates and returns a new permission that is the intersection of the // current permission and the permission specified. private static void IntersectDemo() { UIPermission uiPerm1 = new UIPermission(UIPermissionWindow.SafeTopLevelWindows, UIPermissionClipboard.OwnClipboard); UIPermission uiPerm2 = new UIPermission(UIPermissionWindow.SafeSubWindows, UIPermissionClipboard.NoClipboard); UIPermission p3 = (UIPermission)uiPerm1.Intersect(uiPerm2); Console.WriteLine("The intersection of " + uiPerm1.Window.ToString() + " and \n\t" + uiPerm2.Window.ToString() + " is " + p3.Window.ToString() + "\n"); Console.WriteLine("The intersection of " + uiPerm1.Clipboard.ToString() + " and \n\t" + uiPerm2.Clipboard.ToString() + " is " + p3.Clipboard.ToString() + "\n"); } //Copy creates and returns an identical copy of the current permission. private static void CopyDemo() { UIPermission uiPerm1 = new UIPermission(UIPermissionWindow.SafeTopLevelWindows); UIPermission uiPerm2 = new UIPermission(PermissionState.None); uiPerm2 = (UIPermission)uiPerm1.Copy(); if (uiPerm2 != null) { Console.WriteLine("The copy succeeded: " + uiPerm2.ToString() + " \n"); } } // ToXml creates an XML encoding of the permission and its current state; FromXml reconstructs a // permission with the specified state from the XML encoding. private static void ToFromXmlDemo() { UIPermission uiPerm1 = new UIPermission(UIPermissionWindow.SafeTopLevelWindows); UIPermission uiPerm2 = new UIPermission(PermissionState.None); uiPerm2.FromXml(uiPerm1.ToXml()); bool result = uiPerm2.Equals(uiPerm1); if (result) { Console.WriteLine("Result of ToFromXml = " + uiPerm2.ToString()); } else { Console.WriteLine(uiPerm2.ToString()); Console.WriteLine(uiPerm1.ToString()); } } }
Windows 7, Windows Vista SP1 oder höher, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core wird nicht unterstützt), Windows Server 2008 R2 (Server Core wird mit SP1 oder höher unterstützt), Windows Server 2003 SP2
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.
Hinweis