Поделиться через


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

Применяется к