IPermission.IsSubsetOf(IPermission) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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
true
pokud 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
, Y
a Z
představují IPermission objekty, které nejsou null
.
X
. IsSubsetOf(X
) vrátí .true
X
. IsSubsetOf(Y
) vrátí stejnou hodnotu jakoY
. IsSubsetOf(X
) pouze pokudX
aY
představují stejnou sadu oprávnění.Pokud
X
. IsSubsetOf(Y
) aY
. 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 X
slož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í.