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 так как объединение двух пустых разрешений является пустым разрешением.