Export (0) Print
Expand All

IPermission::IsSubsetOf Method

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

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

bool IsSubsetOf(
	IPermission^ target
)

Parameters

target
Type: System.Security::IPermission

A permission that is to be tested for the subset relationship. This permission must be of 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.

ExceptionCondition
ArgumentException

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

The current permission is a subset of the specified permission if the current permission specifies a set of operations that is wholly contained by the specified permission. For example, a permission that represents access to C:\example.txt is a subset of a permission that represents access to C:\. If this method returns true, the current permission represents no more access to the protected resource than does the specified permission.

The following statements are required to be true for all implementations of the IsSubsetOf method. X, Y, and Z represent IPermission objects that are not nullptr.

  • X.IsSubsetOf(X) returns true.

  • X.IsSubsetOf(Y) returns the same value as Y.IsSubsetOf(X) if and only if X and Y represent the same set of permissions.

  • If X.IsSubsetOf(Y) and Y.IsSubsetOf(Z) both return true, X.IsSubsetOf(Z) returns true.

If X represents an empty IPermission object with a permission state of None and Y represents an IPermission object that is nullptr, X.IsSubsetOf(Y) returns true. If Z is also an empty permission, the compound set operation X.Union(Z).IsSubsetOf(Y) also returns true because the union of two empty permissions is an empty permission.

The following code example demonstrates implementing the IsSubsetOf method. This code example is part of a larger example provided for the IPermission class.

    // Called by the Demand method: returns true  
    // if 'this' is a subset of 'target'. 
public:
    virtual bool IsSubsetOf(IPermission^ target) override
    {
        // If 'target' is null and this permission allows nothing,  
        // return true. 
        if (target == nullptr)
        {
            return (int)stateFlags == 0;
        }

        // Both objects must be the same type.
        SoundPermission^ soundPerm = VerifyTypeMatch(target);

        // Return true if the permissions of 'this'  
        // is a subset of 'target'. 
        return stateFlags <= soundPerm->stateFlags;
    }

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Show:
© 2014 Microsoft