Freigeben über


IPermission.IsSubsetOf(IPermission) Methode

Definition

Bestimmt, ob die aktuelle Berechtigung eine Teilmenge der angegebenen Berechtigung ist.

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

Parameter

target
IPermission

Eine Berechtigung, die auf die Teilmengenbeziehung geprüft werden soll. Diese Berechtigung muss denselben Typ aufweisen wie die aktuelle Berechtigung.

Gibt zurück

true, wenn die aktuelle Berechtigung eine Teilmenge der angegebenen Berechtigung ist, andernfalls false.

Ausnahmen

Der target-Parameter ist nicht null und weist nicht denselben Typ wie die aktuelle Berechtigung auf.

Beispiele

Im folgenden Codebeispiel wird die Implementierung der IsSubsetOf -Methode veranschaulicht. Dieses Codebeispiel ist Teil eines größeren Beispiels, das für die IPermission-Klasse bereitgestellt wird.

    // 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

Hinweise

Die aktuelle Berechtigung ist eine Teilmenge der angegebenen Berechtigung, wenn die aktuelle Berechtigung einen Satz von Vorgängen angibt, der vollständig in der angegebenen Berechtigung enthalten ist. Beispielsweise ist eine Berechtigung, die den Zugriff auf C:\example.txt darstellt, eine Teilmenge einer Berechtigung, die den Zugriff auf C:\darstellt. Wenn diese Methode zurückgibt true, stellt die aktuelle Berechtigung keinen weiteren Zugriff auf die geschützte Ressource dar als die angegebene Berechtigung.

Die folgenden Anweisungen müssen für alle Implementierungen der IsSubsetOf Methode true sein. X, Yund Z stellen Objekte dar IPermission , die nicht nullsind.

  • X. IsSubsetOf(X) gibt zurück true.

  • X. IsSubsetOf(Y) gibt denselben Wert wie Yzurück. IsSubsetOf(X) wenn und nur, wenn X und Y denselben Berechtigungssatz darstellen.

  • Wenn X. IsSubsetOf(Y) und Y. IsSubsetOf(Z) gibt truezurück , X. IsSubsetOf(Z) gibt zurück true.

If X stellt ein leeres IPermission Objekt mit dem Berechtigungsstatus von None dar und Y stellt ein IPermission Objekt dar, das nullist , X. IsSubsetOf(Y) gibt zurück true. Wenn Z auch eine leere Berechtigung ist, ist der zusammengesetzte Satzvorgang X. Union(Z). IsSubsetOf(Y) gibt auch zurück true , da die Union von zwei leeren Berechtigungen eine leere Berechtigung ist.

Gilt für: