Share via


CDacl 클래스

이 클래스는 DACL(임의 액세스 제어 목록) 구조체에 대한 래퍼입니다.

Important

이 클래스와 해당 멤버는 Windows 런타임에서 실행되는 애플리케이션에서 사용할 수 없습니다.

구문

class CDacl : public CAcl

멤버

공용 생성자

속성 설명
CDacl::CDacl 생성자입니다.
CDacl::~CDacl 소멸자입니다.

공용 메서드

이름 설명
CDacl::AddAllowedAce 개체에 허용되는 ACE(액세스 제어 항목)를 CDacl 추가합니다.
CDacl::AddDeniedAce 거부된 ACE를 개체에 CDacl 추가합니다.
CDacl::GetAceCount 개체의 ACE(액세스 제어 항목) CDacl 수를 반환합니다.
CDacl::RemoveAce 개체에서 특정 ACE(액세스 제어 항목)를 CDacl 제거합니다.
CDacl::RemoveAllAces 개체에 포함된 모든 ACE를 CDacl 제거합니다.

Public 연산자

이름 설명
CDacl::operator = 대입 연산자입니다.

설명

개체의 보안 설명자에는 DACL이 포함될 수 있습니다. DACL에는 개체에 액세스할 수 있는 사용자 및 그룹을 식별하는 0개 이상의 ACE(액세스 제어 항목)가 포함되어 있습니다. DACL이 비어 있는 경우(즉, ACE가 0개 포함) 액세스 권한이 명시적으로 부여되지 않으므로 액세스가 암시적으로 거부됩니다. 그러나 개체의 보안 설명자에 DACL이 없으면 개체는 보호되지 않으며 모든 사용자가 완전한 액세스 권한을 갖습니다.

개체의 DACL을 검색하려면 개체의 소유자이거나 개체에 대한 READ_CONTROL 액세스 권한이 있어야 합니다. 개체의 DACL을 변경하려면 개체에 대한 WRITE_DAC 액세스 권한이 있어야 합니다.

제공된 클래스 메서드를 사용하여 개체에서 CDacl ACE를 만들고, 추가하고, 제거하고, 삭제합니다. AtlGetDaclAtlSetDacl도 참조하세요.

Windows의 액세스 제어 모델에 대한 소개는 Windows SDK의 Access Control을 참조하세요.

상속 계층 구조

CAcl

CDacl

요구 사항

헤더: atlsecurity.h

CDacl::AddAllowedAce

개체에 허용되는 ACE(액세스 제어 항목)를 CDacl 추가합니다.

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(...);

매개 변수

rSid
CSid 개체입니다.

AccessMask
지정된 CSid 개체에 대해 허용되는 액세스 권한 마스크를 지정합니다.

AceFlags
ACE 상속을 제어하는 비트 플래그 집합입니다.

pObjectType
개체 형식입니다.

pInheritedObjectType
상속된 개체 형식입니다.

Return Value

ACE가 개체에 추가되면 TRUE를 반환하고 실패하면 CDacl FALSE를 반환합니다.

설명

개체에는 CDacl 개체에 액세스할 수 있는 사용자 및 그룹을 식별하는 0개 이상의 ACE(액세스 제어 항목)가 포함됩니다. 이 메서드는 개체에 대한 액세스를 허용하는 ACE를 CDacl 추가합니다.

매개 변수에서 설정할 AceFlags 수 있는 다양한 플래그에 대한 설명은 ACE_HEADER 참조하세요.

CDacl::AddDeniedAce

거부된 ACE(액세스 제어 항목)를 개체에 CDacl 추가합니다.

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(...);

매개 변수

rSid
CSid 개체입니다.

AccessMask
지정된 CSid 개체에 대해 거부될 액세스 권한 마스크를 지정합니다.

AceFlags
ACE 상속을 제어하는 비트 플래그 집합입니다. 메서드의 첫 번째 형식에서 기본값은 0입니다.

pObjectType
개체 형식입니다.

pInheritedObjectType
상속된 개체 형식입니다.

Return Value

ACE가 개체에 추가되면 TRUE를 반환하고 실패하면 CDacl FALSE를 반환합니다.

설명

개체에는 CDacl 개체에 액세스할 수 있는 사용자 및 그룹을 식별하는 0개 이상의 ACE(액세스 제어 항목)가 포함됩니다. 이 메서드는 개체에 대한 액세스를 거부하는 ACE를 CDacl 추가합니다.

매개 변수에서 설정할 AceFlags 수 있는 다양한 플래그에 대한 설명은 ACE_HEADER 참조하세요.

CDacl::CDacl

생성자입니다.

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

매개 변수

rhs
기존 ACL (액세스 제어 목록) 구조체입니다.

설명

CDacl 필요에 따라 기존 ACL 구조를 사용하여 개체를 만들 수 있습니다. SACL(시스템 액세스 제어 목록)이 아닌 DACL(임의 액세스 제어 목록)만 이 매개 변수로 전달되어야 합니다. 디버그 빌드에서 SACL을 전달하면 ASSERT가 발생합니다. 릴리스 빌드에서 SACL을 전달하면 ACL의 ACE(액세스 제어 항목)가 무시되고 오류가 발생하지 않습니다.

CDacl::~CDacl

소멸자입니다.

~CDacl () throw();

설명

소멸자는 CDacl::RemoveAllAces를 사용하는 모든 ACE(액세스 제어 항목)를 포함하여 개체에서 획득한 모든 리소스를 해제합니다.

CDacl::GetAceCount

개체의 ACE(액세스 제어 항목) CDacl 수를 반환합니다.

UINT GetAceCount() const throw();

Return Value

개체에 포함된 CDacl ACE 수를 반환합니다.

CDacl::operator =

대입 연산자입니다.

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

매개 변수

rhs
기존 개체에 할당할 ACL(액세스 제어 목록)입니다.

Return Value

업데이트 CDacl 된 개체에 대한 참조를 반환합니다.

설명

DACL(임의 액세스 제어 목록)만 이 함수에 전달해야 합니다. SACL(시스템 액세스 제어 목록)을 이 함수에 전달하면 디버그 빌드에서 ASSERT가 발생하지만 릴리스 빌드에서는 오류가 발생하지 않습니다.

CDacl::RemoveAce

개체에서 특정 ACE(액세스 제어 항목)를 CDacl 제거합니다.

void RemoveAce(UINT nIndex) throw();

매개 변수

nIndex
제거할 ACE 항목의 인덱스입니다.

설명

이 메서드는 CAtlArray::RemoveAt에서 파생됩니다.

CDacl::RemoveAllAces

개체에 포함된 모든 ACE(액세스 제어 항목)를 CDacl 제거합니다.

void RemoveAllAces() throw();

설명

개체의 모든 ACE (액세스 제어 항목) 구조체(있는 경우)를 CDacl 제거합니다.

참고 항목

보안 샘플
CAcl 클래스
Acl
Ace
클래스 개요
보안 전역 함수