UIPermission.IsSubsetOf Method (IPermission)

 
System_CAPS_noteNote

The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

Determines whether the current permission is a subset of the specified permission.

Namespace:   System.Security.Permissions
Assembly:  mscorlib (in mscorlib.dll)

public override bool IsSubsetOf(
	IPermission target
)

Parameters

target
Type: System.Security.IPermission

A permission to test for the subset relationship. This permission must be the same type as the current permission.

Return Value

Type: System.Boolean

true if the current permission is a subset of the specified permission; otherwise, false.

Exception Condition
ArgumentException

The target parameter is not null and is not of the same type as the current permission.

The current permission is a subset of the specified permission if all demands that succeed for the current permission also succeed for the specified permission. That is, the specified permission contains at least the permissions contained in the subset. For IsSubsetOf to return true, both the UIPermissionWindow and UIPermissionClipboard values of the current permission must be equal to or less permissive than the values of the specified permission.

The following code example shows the behavior of the IsSubsetOf method. This example is part of a larger example provided for the UIPermission class.

System_CAPS_noteNote

The code example is intended to show the behavior of the method, not to demonstrate its use. In general, the methods of permission classes are used by the security infrastructure; they are not typically used in applications.

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

    }
}

.NET Framework
Available since 1.1
Return to top
Show: