IPermission.IsSubsetOf(IPermission) Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Determines whether the current permission is a subset of the specified permission.
public:
bool IsSubsetOf(System::Security::IPermission ^ target);
public bool IsSubsetOf (System.Security.IPermission? target);
public bool IsSubsetOf (System.Security.IPermission target);
abstract member IsSubsetOf : System.Security.IPermission -> bool
Public Function IsSubsetOf (target As IPermission) As Boolean
Parameters
- target
- IPermission
A permission that is to be tested for the subset relationship. This permission must be of the same type as the current permission.
Returns
true
if the current permission is a subset of the specified permission; otherwise, false
.
Exceptions
The target
parameter is not null
and is not of the same type as the current permission.
Examples
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;
}
// Called by the Demand method: returns true if 'this' is a subset of 'target'.
public override Boolean IsSubsetOf(IPermission target)
{
// If 'target' is null and this permission allows nothing, return true.
if (target == null) return m_flags == 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 m_flags <= soundPerm.m_flags;
}
' Called by the Demand method: returns true if 'this' is a subset of 'target'.
Public Overrides Function IsSubsetOf(ByVal target As IPermission) As [Boolean]
' If 'target' is null and this permission allows nothing, return true.
If target Is Nothing Then
Return m_flags = 0
End If
' Both objects must be the same type.
Dim soundPerm As SoundPermission = VerifyTypeMatch(target)
' Return true if the permissions of 'this' is a subset of 'target'.
Return m_flags <= soundPerm.m_flags
End Function 'IsSubsetOf
Remarks
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 null
.
X
.IsSubsetOf(X
) returnstrue
.X
.IsSubsetOf(Y
) returns the same value asY
.IsSubsetOf(X
) if and only ifX
andY
represent the same set of permissions.If
X
.IsSubsetOf(Y
) andY
.IsSubsetOf(Z
) both returntrue
,X
.IsSubsetOf(Z
) returnstrue
.
If X
represents an empty IPermission object with a permission state of None and Y
represents an IPermission object that is null
, 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.