Sdílet prostřednictvím


IPermission.IsSubsetOf(IPermission) Metoda

Definice

Určuje, zda je aktuální oprávnění podmnožinou zadaného oprávnění.

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

Parametry

target
IPermission

Oprávnění, které má být testováno pro vztah podmnožinu. Toto oprávnění musí být stejného typu jako aktuální oprávnění.

Návraty

truepokud je aktuální oprávnění podmnožinou zadaného oprávnění; v opačném případě . false

Výjimky

Parametr target není null a není stejného typu jako aktuální oprávnění.

Příklady

Následující příklad kódu ukazuje implementaci IsSubsetOf metody . Tento příklad kódu je součástí většího příkladu IPermission pro třídu .

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

Poznámky

Aktuální oprávnění je podmnožinou zadaného oprávnění, pokud aktuální oprávnění určuje sadu operací, která je zcela obsažena v zadaném oprávnění. Například oprávnění, které představuje přístup k C:\example.txt, je podmnožinou oprávnění, která představuje přístup k C:\. Pokud tato metoda vrátí true, aktuální oprávnění nepředstavuje více přístupu k chráněnému prostředku než zadané oprávnění.

Následující tvrzení musí být pravdivé pro všechny implementace IsSubsetOf metody. X, Ya Z představují IPermission objekty, které nejsou null.

  • X. IsSubsetOf(X) vrátí .true

  • X. IsSubsetOf(Y) vrátí stejnou hodnotu jako Y. IsSubsetOf(X) pouze pokud X a Y představují stejnou sadu oprávnění.

  • Pokud X. IsSubsetOf(Y) a Y. IsSubsetOf(Z) oba vrací true, X. IsSubsetOf(Z) vrátí .true

If X představuje prázdný IPermission objekt se stavem None oprávnění a Y představuje IPermission objekt , který je null, X. IsSubsetOf(Y) vrátí .true Pokud Z je také prázdné oprávnění, operace Xsložené sady . Union(Z). IsSubsetOf(Y) vrátí true také proto, že sjednocení dvou prázdných oprávnění je prázdné oprávnění.

Platí pro