Bagikan melalui


IPermission.IsSubsetOf(IPermission) Metode

Definisi

Menentukan apakah izin saat ini adalah subset dari izin yang ditentukan.

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

Parameter

target
IPermission

Izin yang akan diuji untuk hubungan subset. Izin ini harus bertipe sama dengan izin saat ini.

Mengembalikan

true jika izin saat ini adalah subset dari izin yang ditentukan; jika tidak, false.

Pengecualian

Parameter target bukan null dan bukan tipe yang sama dengan izin saat ini.

Contoh

Contoh kode berikut menunjukkan penerapan IsSubsetOf metode . Contoh kode ini adalah bagian dari contoh yang lebih besar yang disediakan untuk IPermission kelas .

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

Keterangan

Izin saat ini adalah subset dari izin yang ditentukan jika izin saat ini menentukan sekumpulan operasi yang sepenuhnya terkandung oleh izin yang ditentukan. Misalnya, izin yang mewakili akses ke C:\example.txt adalah subset izin yang mewakili akses ke C:\. Jika metode ini mengembalikan true, izin saat ini tidak mewakili akses lagi ke sumber daya yang dilindungi daripada izin yang ditentukan.

Pernyataan berikut harus benar untuk semua implementasi IsSubsetOf metode. X, Y, dan Z mewakili IPermission objek yang bukan null.

  • X. IsSubsetOf(X) mengembalikan true.

  • X. IsSubsetOf(Y) mengembalikan nilai yang sama dengan Y. IsSubsetOf(X) jika dan hanya jika X dan Y mewakili sekumpulan izin yang sama.

  • Jika X. IsSubsetOf(Y) dan Y. IsSubsetOf(Z) mengembalikan true, X. IsSubsetOf(Z) mengembalikan true.

Jika X mewakili objek kosong IPermission dengan status None izin dan Y mewakili IPermission objek yaitu null, X. IsSubsetOf(Y) mengembalikan true. Jika Z juga merupakan izin kosong, operasi Xset gabungan . Union(Z). IsSubsetOf(Y) juga mengembalikan true karena persatuan dua izin kosong adalah izin kosong.

Berlaku untuk