Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen.
Übersetzung
Original
Dieser Artikel wurde noch nicht bewertet - Dieses Thema bewerten.

UIPermission-Klasse

Steuert die Berechtigungen für Benutzeroberflächen und die Zwischenablage. Diese Klasse kann nicht vererbt werden.

System.Object
  System.Security.CodeAccessPermission
    System.Security.Permissions.UIPermission

Namespace:  System.Security.Permissions
Assembly:  mscorlib (in mscorlib.dll)
[SerializableAttribute]
[ComVisibleAttribute(true)]
public sealed class UIPermission : CodeAccessPermission, 
	IUnrestrictedPermission

Der UIPermission-Typ macht die folgenden Member verfügbar.

  Name Beschreibung
Öffentliche Methode 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.
Öffentliche Methode UIPermission(UIPermissionClipboard) Initialisiert eine neue Instanz der UIPermission-Klasse mit den Berechtigungen für die Zwischenablage und ohne Zugriff auf Fenster.
Öffentliche Methode UIPermission(UIPermissionWindow) Initialisiert eine neue Instanz der UIPermission-Klasse mit den Berechtigungen für Fenster und ohne Zugriff auf die Zwischenablage.
Öffentliche Methode UIPermission(UIPermissionWindow, UIPermissionClipboard) Initialisiert eine neue Instanz der UIPermission-Klasse mit den angegebenen Berechtigungen für Fenster und Zwischenablage.
Zum Seitenanfang
  Name Beschreibung
Öffentliche Eigenschaft Clipboard Ruft den durch die Berechtigung dargestellten Zwischenablagezugriff ab oder legt diesen fest.
Öffentliche Eigenschaft Window Ruft den durch die Berechtigung dargestellten Fensterzugriff ab oder legt diesen fest.
Zum Seitenanfang
  Name Beschreibung
Öffentliche Methode 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.)
Öffentliche Methode Copy Erstellt eine identische Kopie der aktuellen Berechtigung und gibt die Kopie zurück. (Überschreibt CodeAccessPermission.Copy().)
Öffentliche Methode 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.)
Öffentliche Methode 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.)
Öffentliche Methode Equals Bestimmt, ob das angegebene CodeAccessPermission-Objekt und das aktuelle CodeAccessPermission-Objekt gleich sind. (Von CodeAccessPermission geerbt.)
Geschützte Methode 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.)
Öffentliche Methode FromXml Rekonstruiert aus einer XML-Codierung eine Berechtigung mit einem angegebenen Zustand. (Überschreibt CodeAccessPermission.FromXml(SecurityElement).)
Öffentliche Methode 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.)
Öffentliche Methode GetType Ruft den Type der aktuellen Instanz ab. (Von Object geerbt.)
Öffentliche Methode Intersect Erstellt eine Berechtigung als Schnittmenge der aktuellen und der angegebenen Berechtigung und gibt diese zurück. (Überschreibt CodeAccessPermission.Intersect(IPermission).)
Öffentliche Methode IsSubsetOf Bestimmt, ob die aktuelle Berechtigung eine Teilmenge der angegebenen Berechtigung ist. (Überschreibt CodeAccessPermission.IsSubsetOf(IPermission).)
Öffentliche Methode IsUnrestricted Gibt einen Wert zurück, der angibt, ob die aktuelle Berechtigung uneingeschränkt ist.
Geschützte Methode MemberwiseClone Erstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.)
Öffentliche Methode 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.)
Öffentliche Methode ToString Erstellt eine Zeichenfolgenentsprechung des aktuellen Berechtigungsobjekts und gibt diese zurück. (Von CodeAccessPermission geerbt.)
Öffentliche Methode ToXml Erstellt eine XML-Codierung der Berechtigung und ihres aktuellen Zustands. (Überschreibt CodeAccessPermission.ToXml().)
Öffentliche Methode Union Erstellt eine Berechtigung, die die Union der Berechtigung und der angegebenen Berechtigung darstellt. (Überschreibt CodeAccessPermission.Union(IPermission).)
Zum Seitenanfang

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 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());
        }

    }

}



.NET Framework

Unterstützt in: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

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.
Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.
Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)
Community-Inhalt Hinzufügen
Anmerkungen FAQ