Bagikan melalui


Kelas CDacl

Kelas ini adalah pembungkus untuk struktur DACL (daftar kontrol akses diskresi).

Penting

Kelas ini dan anggotanya tidak dapat digunakan dalam aplikasi yang dijalankan di Windows Runtime.

Sintaks

class CDacl : public CAcl

Anggota

Konstruktor Publik

Nama Deskripsi
CDacl::CDacl Konstruktor.
CDacl::~CDacl Destruktor.

Metode Publik

Nama Deskripsi
CDacl::AddAllowedAce Menambahkan ACE yang diizinkan (entri kontrol akses) ke CDacl objek.
CDacl::AddDeniedAce Menambahkan ACE yang ditolak ke CDacl objek.
CDacl::GetAceCount Mengembalikan jumlah ACE (entri kontrol akses) dalam CDacl objek.
CDacl::RemoveAce Menghapus ACE tertentu (entri kontrol akses) dari CDacl objek.
CDacl::RemoveAllAces Menghapus semua ACE yang terkandung dalam CDacl objek .

Operator Publik

Nama Deskripsi
CDacl::operator = Operator penugasan.

Keterangan

Deskriptor keamanan objek dapat berisi DACL. DACL berisi nol atau lebih ACE (entri kontrol akses) yang mengidentifikasi pengguna dan grup yang dapat mengakses objek. Jika DACL kosong (artinya, dacl berisi aCE nol), tidak ada akses yang diberikan secara eksplisit, sehingga akses ditolak secara implisit. Namun, jika deskriptor keamanan objek tidak memiliki DACL, objek tidak terlindungi dan semua orang memiliki akses lengkap.

Untuk mengambil DACL objek, Anda harus menjadi pemilik objek atau memiliki akses READ_CONTROL ke objek. Untuk mengubah DACL objek, Anda harus memiliki akses WRITE_DAC ke objek.

Gunakan metode kelas yang disediakan untuk membuat, menambahkan, menghapus, dan menghapus ACE dari CDacl objek. Lihat juga AtlGetDacl dan AtlSetDacl.

Untuk pengenalan model kontrol akses di Windows, lihat Kontrol Akses di Windows SDK.

Hierarki Warisan

CAcl

CDacl

Persyaratan

Header: atlsecurity.h

CDacl::AddAllowedAce

Menambahkan ACE yang diizinkan (entri kontrol akses) ke CDacl objek.

bool AddAllowedAce(
    const CSid& rSid,
    ACCESS_MASK AccessMask,
    BYTE AceFlags = 0) throw(...);

bool AddAllowedAce(
    const CSid& rSid,
    ACCESS_MASK AccessMask,
    BYTE AceFlags,
    const GUID* pObjectType,
    const GUID* pInheritedObjectType) throw(...);

Parameter

rSid
Objek CSid .

AccessMask
Menentukan masker hak akses yang akan diizinkan untuk objek yang ditentukan CSid .

AceFlags
Sekumpulan bendera bit yang mengontrol pewarisan ACE.

pObjectType
Jenis objek.

pInheritedObjectType
Jenis objek yang diwariskan.

Tampilkan Nilai

Mengembalikan TRUE jika ACE ditambahkan ke CDacl objek, FALSE pada kegagalan.

Keterangan

Objek CDacl berisi nol atau lebih ACE (entri kontrol akses) yang mengidentifikasi pengguna dan grup yang dapat mengakses objek. Metode ini menambahkan ACE yang memungkinkan akses ke CDacl objek.

Lihat ACE_HEADER untuk deskripsi berbagai bendera yang dapat diatur dalam AceFlags parameter.

CDacl::AddDeniedAce

Menambahkan ACE yang ditolak (entri kontrol akses) ke CDacl objek.

bool AddDeniedAce(
    const CSid& rSid,
    ACCESS_MASK AccessMask,
    BYTE AceFlags = 0) throw(...);

bool AddDeniedAce(
    const CSid& rSid,
    ACCESS_MASK AccessMask,
    BYTE AceFlags,
    const GUID* pObjectType,
    const GUID* pInheritedObjectType) throw(...);

Parameter

rSid
Objek CSid.

AccessMask
Menentukan masker hak akses yang akan ditolak untuk objek yang ditentukan CSid .

AceFlags
Sekumpulan bendera bit yang mengontrol pewarisan ACE. Default ke 0 dalam bentuk pertama metode .

pObjectType
Jenis objek.

pInheritedObjectType
Jenis objek yang diwariskan.

Tampilkan Nilai

Mengembalikan TRUE jika ACE ditambahkan ke CDacl objek, FALSE pada kegagalan.

Keterangan

Objek CDacl berisi nol atau lebih ACE (entri kontrol akses) yang mengidentifikasi pengguna dan grup yang dapat mengakses objek. Metode ini menambahkan ACE yang menolak akses ke CDacl objek.

Lihat ACE_HEADER untuk deskripsi berbagai bendera yang dapat diatur dalam AceFlags parameter.

CDacl::CDacl

Konstruktor.

CDacl (const ACL& rhs) throw(...);
CDacl () throw();

Parameter

rhs
Struktur (daftar kontrol akses) yang ACL sudah ada.

Keterangan

Objek CDacl dapat dibuat secara opsional menggunakan struktur yang ada ACL . Penting untuk dicatat bahwa hanya DACL (daftar kontrol akses diskresi), dan bukan SACL (daftar kontrol akses sistem), yang harus diteruskan sebagai parameter ini. Dalam build debug, melewati SACL akan menyebabkan ASSERT. Dalam build rilis, meneruskan SACL akan menyebabkan ACE (entri kontrol akses) dalam ACL diabaikan, dan tidak ada kesalahan yang akan terjadi.

CDacl::~CDacl

Destruktor.

~CDacl () throw();

Keterangan

Destruktor membebaskan sumber daya apa pun yang diperoleh oleh objek, termasuk semua ACE (entri kontrol akses) menggunakan CDacl::RemoveAllAces.

CDacl::GetAceCount

Mengembalikan jumlah ACE (entri kontrol akses) dalam CDacl objek.

UINT GetAceCount() const throw();

Tampilkan Nilai

Mengembalikan jumlah ACE yang terkandung dalam CDacl objek.

CDacl::operator =

Operator penugasan.

CDacl& operator= (const ACL& rhs) throw(...);

Parameter

rhs
ACL (daftar kontrol akses) untuk ditetapkan ke objek yang ada.

Tampilkan Nilai

Mengembalikan referensi ke objek yang diperbarui CDacl .

Keterangan

Anda harus memastikan bahwa Anda hanya meneruskan DACL (daftar kontrol akses diskresi) ke fungsi ini. Meneruskan SACL (daftar kontrol akses sistem) ke fungsi ini akan menyebabkan ASSERT dalam build debug tetapi tidak akan menyebabkan kesalahan dalam build rilis.

CDacl::RemoveAce

Menghapus ACE tertentu (entri kontrol akses) dari CDacl objek.

void RemoveAce(UINT nIndex) throw();

Parameter

nIndex
Indeks ke entri ACE untuk dihapus.

Keterangan

Metode ini berasal dari CAtlArray::RemoveAt.

CDacl::RemoveAllAces

Menghapus semua ACE (entri kontrol akses) yang terkandung dalam CDacl objek.

void RemoveAllAces() throw();

Keterangan

Menghapus setiap ACE struktur (entri kontrol akses) (jika ada) dalam CDacl objek.

Lihat juga

Sampel Keamanan
Kelas CAcl
Acls
Aces
Gambaran Umum Kelas
Fungsi Global Keamanan