IPermission.IsSubsetOf(IPermission) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Определяет, является ли текущее разрешение подмножеством указанного разрешения.
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
Параметры
- target
- IPermission
Разрешение, для которого требуется проверить отношение подмножества. Его тип должен совпадать с типом текущего разрешения.
Возвращаемое значение
Значение true
, если текущее разрешение является подмножеством указанного разрешения. В противном случае — значение false
.
Исключения
Параметр target
не равен null
и имеет тип, не совпадающий с типом текущего разрешения.
Примеры
В следующем примере кода демонстрируется IsSubsetOf реализация метода . Этот пример входит в состав более крупного примера использования класса IPermission.
// 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
Комментарии
Текущее разрешение является подмножеством указанного разрешения, если текущее разрешение указывает набор операций, которые вся содержится в указанном разрешении. Например, разрешение, представляющее доступ к C:\example.txt, является подмножеством разрешения, представляющего доступ к C:\. Если этот метод возвращает true
, текущее разрешение не представляет больше доступа к защищенному ресурсу, чем указанное разрешение.
Следующие инструкции должны быть истинными для всех реализаций IsSubsetOf метода .
X
, Y
и Z
представляют IPermission объекты, которые не null
являются .
X
. IsSubsetOf(X
) возвращаетtrue
.X
. IsSubsetOf(Y
) возвращает то же значение, что иY
. IsSubsetOf(X
) только в том случае, еслиX
иY
представляют один и тот же набор разрешений.Если
X
. IsSubsetOf(Y
) иY
. IsSubsetOf(Z
) возвращаетtrue
,X
. IsSubsetOf(Z
) возвращаетtrue
.
Если X
представляет пустой IPermission объект с состоянием None разрешения и Y
представляет IPermission объект , который имеет значение null
. X
IsSubsetOf(Y
) возвращает true
. Если Z
также является пустым разрешением, операция X
составного набора . Union(Z). IsSubsetOf(Y) также возвращает, true
так как объединение двух пустых разрешений является пустым разрешением.