CSecurityDesc 클래스
이 클래스는 구조체에 대한 래퍼입니다 SECURITY_DESCRIPTOR
.
Important
이 클래스와 해당 멤버는 Windows 런타임에서 실행되는 애플리케이션에서 사용할 수 없습니다.
구문
class CSecurityDesc
멤버
공용 생성자
속성 | 설명 |
---|---|
CSecurityDesc::CSecurityDesc | 생성자입니다. |
CSecurityDesc::~CSecurityDesc | 소멸자입니다. |
공용 메서드
이름 | 설명 |
---|---|
CSecurityDesc::FromString | 문자열 형식 보안 설명자를 유효한 기능 보안 설명자로 변환합니다. |
CSecurityDesc::GetControl | 보안 설명자에서 제어 정보를 검색합니다. |
CSecurityDesc::GetDacl | 보안 설명자에서 DACL(임의 액세스 제어 목록) 정보를 검색합니다. |
CSecurityDesc::GetGroup | 보안 설명자에서 기본 그룹 정보를 검색합니다. |
CSecurityDesc::GetOwner | 보안 설명자에서 소유자 정보를 검색합니다. |
CSecurityDesc::GetPSECURITY_DESCRIPTOR | 구조체에 대한 포인터를 반환합니다 SECURITY_DESCRIPTOR . |
CSecurityDesc::GetSacl | 보안 설명자에서 SACL(시스템 액세스 제어 목록) 정보를 검색합니다. |
CSecurityDesc::IsDaclAutoInherited | DACL이 자동 전파를 지원하도록 구성되어 있는지 여부를 확인합니다. |
CSecurityDesc::IsDaclDefaulted | 보안 설명자가 기본 DACL로 구성되었는지 여부를 확인합니다. |
CSecurityDesc::IsDaclPresent | 보안 설명자에 DACL이 포함되어 있는지 확인합니다. |
CSecurityDesc::IsDaclProtected | 수정을 방지하도록 DACL이 구성되어 있는지 여부를 확인합니다. |
CSecurityDesc::IsGroupDefaulted | 보안 설명자의 SID(그룹 보안 식별자)가 기본적으로 설정되었는지 여부를 확인합니다. |
CSecurityDesc::IsOwnerDefaulted | 보안 설명자의 소유자 SID가 기본적으로 설정되었는지 여부를 확인합니다. |
CSecurityDesc::IsSaclAutoInherited | SACL이 자동 전파를 지원하도록 구성되어 있는지 확인합니다. |
CSecurityDesc::IsSaclDefaulted | 보안 설명자가 기본 SACL로 구성되었는지 여부를 확인합니다. |
CSecurityDesc::IsSaclPresent | 보안 설명자에 SACL이 포함되어 있는지 여부를 확인합니다. |
CSecurityDesc::IsSaclProtected | SACL이 수정을 방지하도록 구성되어 있는지 여부를 확인합니다. |
CSecurityDesc::IsSelfRelative | 보안 설명자가 자체 상대 형식인지 여부를 확인합니다. |
CSecurityDesc::MakeAbsolute | 보안 설명자를 절대 형식으로 변환하려면 이 메서드를 호출합니다. |
CSecurityDesc::MakeSelfRelative | 보안 설명자를 자체 상대 형식으로 변환하려면 이 메서드를 호출합니다. |
CSecurityDesc::SetControl | 보안 설명자의 제어 비트를 설정합니다. |
CSecurityDesc::SetDacl | DACL의 정보를 설정합니다. DACL이 보안 설명자에 이미 있는 경우 대체됩니다. |
CSecurityDesc::SetGroup | 절대 형식 보안 설명자의 기본 그룹 정보를 설정하여 이미 있는 기본 그룹 정보를 대체합니다. |
CSecurityDesc::SetOwner | 절대 형식 보안 설명자의 소유자 정보를 설정하여 이미 있는 소유자 정보를 대체합니다. |
CSecurityDesc::SetSacl | SACL의 정보를 설정합니다. SACL이 보안 설명자에 이미 있는 경우 대체됩니다. |
CSecurityDesc::ToString | 보안 설명자를 문자열 형식으로 변환합니다. |
Public 연산자
속성 | 설명 |
---|---|
CSecurityDesc::operator const SECURITY_DESCRIPTOR * | 구조체에 대한 포인터를 반환합니다 SECURITY_DESCRIPTOR . |
CSecurityDesc::operator = | 대입 연산자입니다. |
설명
구조체에는 SECURITY_DESCRIPTOR
개체와 연결된 보안 정보가 포함됩니다. 애플리케이션은 이 구조를 사용하여 개체의 보안 상태를 설정하고 쿼리합니다. AtlGetSecurityDescriptor도 참조하세요.
애플리케이션은 구조를 직접 수정 SECURITY_DESCRIPTOR
해서는 안 되며 대신 제공된 클래스 메서드를 사용해야 합니다.
Windows의 액세스 제어 모델에 대한 소개는 Windows SDK의 Access Control을 참조하세요.
요구 사항
헤더: atlsecurity.h
CSecurityDesc::CSecurityDesc
생성자입니다.
CSecurityDesc() throw();
CSecurityDesc(const CSecurityDesc& rhs) throw(... );
CSecurityDesc(const SECURITY_DESCRIPTOR& rhs) throw(...);
매개 변수
rhs
CSecurityDesc
새 CSecurityDesc
개체에 할당할 개체 또는 SECURITY_DESCRIPTOR
구조체입니다.
설명
CSecurityDesc
필요에 따라 구조체 또는 이전에 정의된 CSecurityDesc
개체를 SECURITY_DESCRIPTOR
사용하여 개체를 만들 수 있습니다.
CSecurityDesc::~CSecurityDesc
소멸자입니다.
virtual ~CSecurityDesc() throw();
설명
소멸자가 할당된 모든 리소스를 해제합니다.
CSecurityDesc::FromString
문자열 형식 보안 설명자를 유효한 기능 보안 설명자로 변환합니다.
bool FromString(LPCTSTR pstr) throw(...);
매개 변수
pstr
변환할 문자열 형식 보안 설명자를 포함하는 null로 끝나는 문자열에 대한 포인터입니다.
Return Value
성공에 대해 true를 반환합니다. 실패에 대한 예외를 throw합니다.
설명
CSecurityDesc::ToString을 사용하여 문자열을 만들 수 있습니다. 보안 설명자를 문자열로 변환하면 쉽게 저장하고 전송할 수 있습니다.
이 메서드는 ConvertStringSecurityDescriptorToSecurityDescriptor를 호출 합니다.
CSecurityDesc::GetControl
보안 설명자에서 제어 정보를 검색합니다.
bool GetControl(SECURITY_DESCRIPTOR_CONTROL* psdc) const throw();
매개 변수
psdc
SECURITY_DESCRIPTOR_CONTROL
보안 설명자의 제어 정보를 받는 구조체에 대한 포인터입니다.
Return Value
메서드가 성공하면 true를 반환하고 실패하면 false를 반환합니다.
설명
이 메서드는 GetSecurityDescriptorControl을 호출합니다.
CSecurityDesc::GetDacl
보안 설명자에서 DACL(임의 액세스 제어 목록) 정보를 검색합니다.
bool GetDacl(
CDacl* pDacl,
bool* pbPresent = NULL,
bool* pbDefaulted = NULL) const throw(...);
매개 변수
pDacl
CDacl
보안 설명자의 DACL 복사본을 저장할 구조체에 대한 포인터입니다. 임의 ACL이 있는 경우 메서드는 pDacl을 보안 설명자의 임의 ACL 주소로 설정합니다. 임의 ACL이 없으면 값이 저장되지 않습니다.
pbPresent
지정된 보안 설명자에 임의 ACL이 있음을 나타내는 값에 대한 포인터입니다. 보안 설명자에 임의 ACL이 포함된 경우 이 매개 변수는 true로 설정됩니다. 보안 설명자에 임의 ACL이 없는 경우 이 매개 변수는 false로 설정됩니다.
pbDefaulted
보안 설명자에 대한 임의 ACL이 있는 경우 구조체의 SE_DACL_DEFAULTED 플래그 SECURITY_DESCRIPTOR_CONTROL
값으로 설정된 플래그에 대한 포인터입니다. 이 플래그가 true이면 임의 ACL이 기본 메커니즘에 의해 검색되었습니다. false이면 사용자가 임의 ACL을 명시적으로 지정했습니다.
Return Value
메서드가 성공하면 true를 반환하고 실패하면 false를 반환합니다.
CSecurityDesc::GetGroup
보안 설명자에서 기본 그룹 정보를 검색합니다.
bool GetGroup(
CSid* pSid,
bool* pbDefaulted = NULL) const throw(...);
매개 변수
pSid
CDacl에 저장된 그룹의 복사본을 받는 CSid (보안 식별자)에 대한 포인터입니다.
pbDefaulted
메서드가 반환되는 구조체의 SE_GROUP_DEFAULTED 플래그 값으로 SECURITY_DESCRIPTOR_CONTROL
설정된 플래그에 대한 포인터입니다.
Return Value
메서드가 성공하면 true를 반환하고 실패하면 false를 반환합니다.
CSecurityDesc::GetOwner
보안 설명자에서 소유자 정보를 검색합니다.
bool GetOwner(
CSid* pSid,
bool* pbDefaulted = NULL) const throw(...);
매개 변수
pSid
CDacl에 저장된 그룹의 복사본을 받는 CSid (보안 식별자)에 대한 포인터입니다.
pbDefaulted
메서드가 반환되는 경우 구조체의 SE_OWNER_DEFAULTED 플래그 값으로 SECURITY_DESCRIPTOR_CONTROL
설정된 플래그에 대한 포인터입니다.
Return Value
메서드가 성공하면 true를 반환하고 실패하면 false를 반환합니다.
CSecurityDesc::GetPSECURITY_DESCRIPTOR
구조체에 대한 포인터를 반환합니다 SECURITY_DESCRIPTOR
.
const SECURITY_DESCRIPTOR* GetPSECURITY_DESCRIPTOR() const throw();
Return Value
SECURITY_DESCRIPTOR 구조체에 대한 포인터를 반환합니다.
CSecurityDesc::GetSacl
보안 설명자에서 SACL(시스템 액세스 제어 목록) 정보를 검색합니다.
bool GetSacl(
CSacl* pSacl,
bool* pbPresent = NULL,
bool* pbDefaulted = NULL) const throw(...);
매개 변수
pSacl
CSacl
보안 설명자의 SACL 복사본을 저장할 구조체에 대한 포인터입니다. 시스템 ACL이 있는 경우 메서드는 pSacl을 보안 설명자의 시스템 ACL 주소로 설정합니다. 시스템 ACL이 없으면 값이 저장되지 않습니다.
pbPresent
지정된 보안 설명자에 시스템 ACL이 있음을 나타내기 위해 메서드가 설정하는 플래그에 대한 포인터입니다. 보안 설명자에 시스템 ACL이 포함된 경우 이 매개 변수는 true로 설정됩니다. 보안 설명자에 시스템 ACL이 없는 경우 이 매개 변수는 false로 설정됩니다.
pbDefaulted
보안 설명자에 대한 시스템 ACL이 있는 경우 구조체의 SE_SACL_DEFAULTED 플래그 SECURITY_DESCRIPTOR_CONTROL
값으로 설정된 플래그에 대한 포인터입니다.
Return Value
메서드가 성공하면 true를 반환하고 실패하면 false를 반환합니다.
CSecurityDesc::IsDaclAutoInherited
DACL(임의 액세스 제어 목록)이 자동 전파를 지원하도록 구성되어 있는지 확인합니다.
bool IsDaclAutoInherited() const throw();
Return Value
기존 자식 개체에 상속 가능한 ACE(액세스 제어 항목)의 자동 전파를 지원하도록 설정된 DACL이 보안 설명자에 포함된 경우 true를 반환합니다. 그렇지 않은 경우 false를 반환합니다.
설명
시스템은 개체 및 기존 자식 개체에 대한 자동 상속 알고리즘을 수행할 때 이 비트를 설정합니다.
CSecurityDesc::IsDaclDefaulted
보안 설명자가 DACL(기본 임의 액세스 제어 목록)으로 구성되었는지 여부를 확인합니다.
bool IsDaclDefaulted() const throw();
Return Value
보안 설명자에 기본 DACL이 포함되어 있으면 true를 반환하고, 그렇지 않으면 false를 반환합니다.
설명
이 플래그는 ACE(액세스 제어 항목) 상속과 관련하여 시스템이 DACL을 처리하는 방식에 영향을 줄 수 있습니다. 예를 들어 개체의 작성자가 DACL을 지정하지 않으면 개체는 작성자의 액세스 토큰에서 기본 DACL을 받습니다. SE_DACL_PRESENT 플래그가 설정되지 않은 경우 시스템에서 이 플래그를 무시합니다.
이 플래그는 개체의 최종 DACL을 계산하는 방법을 결정하는 데 사용되며 보안 개체의 보안 설명자 컨트롤에 물리적으로 저장되지 않습니다.
이 플래그를 설정하려면 CSecurityDesc::SetDacl 메서드를 사용합니다.
CSecurityDesc::IsDaclPresent
보안 설명자에 DACL(임의 액세스 제어 목록)이 포함되어 있는지 확인합니다.
bool IsDaclPresent() const throw();
Return Value
보안 설명자에 DACL이 있으면 true를 반환하고, 그렇지 않으면 false를 반환합니다.
설명
이 플래그가 설정되지 않았거나 이 플래그가 설정되어 있고 DACL이 NULL인 경우 보안 설명자는 모든 사용자에게 모든 권한을 허용합니다.
이 플래그는 보안 설명자가 보안 개체와 연결될 때까지 호출자가 지정한 보안 정보를 보관하는 데 사용됩니다. 보안 설명자가 보안 개체와 연결되면 SE_DACL_PRESENT 플래그는 항상 보안 설명자 컨트롤에 설정됩니다.
이 플래그를 설정하려면 CSecurityDesc::SetDacl 메서드를 사용합니다.
CSecurityDesc::IsDaclProtected
수정을 방지하도록 DACL(임의 액세스 제어 목록)이 구성되어 있는지 확인합니다.
bool IsDaclProtected() const throw();
Return Value
DACL이 상속 가능한 ACE(액세스 제어 항목)에 의해 보안 설명자가 수정되지 않도록 구성된 경우 true를 반환합니다. 그렇지 않은 경우 false를 반환합니다.
설명
이 플래그를 설정하려면 CSecurityDesc::SetDacl 메서드를 사용합니다.
이 메서드는 상속 가능한 ACE의 자동 전파를 지원합니다.
CSecurityDesc::IsGroupDefaulted
보안 설명자의 SID(그룹 보안 식별자)가 기본적으로 설정되었는지 여부를 확인합니다.
bool IsGroupDefaulted() const throw();
Return Value
보안 설명자의 그룹 SID가 제공된 경우 보안 설명자의 원래 공급자가 아닌 기본 메커니즘이 true를 반환합니다. 그렇지 않은 경우 false를 반환합니다.
설명
이 플래그를 설정하려면 CSecurityDesc::SetGroup 메서드를 사용합니다.
CSecurityDesc::IsOwnerDefaulted
보안 설명자의 SID(소유자 보안 식별자)가 기본적으로 설정되었는지 여부를 확인합니다.
bool IsOwnerDefaulted() const throw();
Return Value
보안 설명자의 소유자 SID가 제공된 경우 보안 설명자의 원래 공급자가 아닌 기본 메커니즘이 true를 반환합니다. 그렇지 않은 경우 false를 반환합니다.
설명
이 플래그를 설정하려면 CSecurityDesc::SetOwner 메서드를 사용합니다.
CSecurityDesc::IsSaclAutoInherited
SACL(시스템 액세스 제어 목록)이 자동 전파를 지원하도록 구성되어 있는지 여부를 확인합니다.
bool IsSaclAutoInherited() const throw();
Return Value
기존 자식 개체에 상속 가능한 ACE(액세스 제어 항목)의 자동 전파를 지원하도록 설정된 SACL이 보안 설명자에 포함된 경우 true를 반환합니다. 그렇지 않은 경우 false를 반환합니다.
설명
시스템은 개체 및 기존 자식 개체에 대한 자동 상속 알고리즘을 수행할 때 이 비트를 설정합니다.
CSecurityDesc::IsSaclDefaulted
보안 설명자가 기본 SACL(시스템 액세스 제어 목록)으로 구성되었는지 여부를 확인합니다.
bool IsSaclDefaulted() const throw();
Return Value
보안 설명자에 기본 SACL이 포함되어 있으면 true를 반환하고, 그렇지 않으면 false를 반환합니다.
설명
이 플래그는 ACE(액세스 제어 항목) 상속과 관련하여 시스템에서 SACL을 처리하는 방법에 영향을 줄 수 있습니다. SE_SACL_PRESENT 플래그가 설정되지 않은 경우 시스템에서 이 플래그를 무시합니다.
이 플래그를 설정하려면 CSecurityDesc::SetSacl 메서드를 사용합니다.
CSecurityDesc::IsSaclPresent
보안 설명자에 SACL(시스템 액세스 제어 목록)이 포함되어 있는지 확인합니다.
bool IsSaclPresent() const throw();
Return Value
보안 설명자에 SACL이 있으면 true를 반환하고, 그렇지 않으면 false를 반환합니다.
설명
이 플래그를 설정하려면 CSecurityDesc::SetSacl 메서드를 사용합니다.
CSecurityDesc::IsSaclProtected
수정을 방지하도록 SACL(시스템 액세스 제어 목록)이 구성되어 있는지 확인합니다.
bool IsSaclProtected() const throw();
Return Value
SACL이 상속 가능한 ACE(액세스 제어 항목)에 의해 보안 설명자가 수정되지 않도록 구성된 경우 true를 반환합니다. 그렇지 않은 경우 false를 반환합니다.
설명
이 플래그를 설정하려면 CSecurityDesc::SetSacl 메서드를 사용합니다.
이 메서드는 상속 가능한 ACE의 자동 전파를 지원합니다.
CSecurityDesc::IsSelfRelative
보안 설명자가 자체 상대 형식인지 여부를 확인합니다.
bool IsSelfRelative() const throw();
Return Value
보안 설명자가 인접한 메모리 블록의 모든 보안 정보와 함께 자체 상대 형식인 경우 true를 반환합니다. 보안 설명자가 절대 형식이면 false를 반환합니다. 자세한 내용은 절대 및 자체 상대 보안 설명자를 참조 하세요.
CSecurityDesc::MakeAbsolute
보안 설명자를 절대 형식으로 변환하려면 이 메서드를 호출합니다.
bool MakeAbsolute() throw(...);
Return Value
메서드가 성공하면 true를 반환하고, 그렇지 않으면 false를 반환합니다.
설명
절대 형식의 보안 설명자는 정보 자체가 아니라 포함된 정보에 대한 포인터를 포함합니다. 자체 상대 형식의 보안 설명자는 인접한 메모리 블록의 정보를 포함합니다. 자체 상대 보안 설명자 SECURITY_DESCRIPTOR
에서 구조는 항상 정보를 시작하지만 보안 설명자의 다른 구성 요소는 어떤 순서로든 구조를 따를 수 있습니다. 메모리 주소를 사용하는 대신 자체 상대 보안 설명자의 구성 요소는 보안 설명자의 시작 부분에서 오프셋으로 식별됩니다. 이 형식은 보안 설명자를 디스크에 저장하거나 통신 프로토콜을 통해 전송해야 하는 경우에 유용합니다. 자세한 내용은 절대 및 자체 상대 보안 설명자를 참조 하세요.
CSecurityDesc::MakeSelfRelative
보안 설명자를 자체 상대 형식으로 변환하려면 이 메서드를 호출합니다.
bool MakeSelfRelative() throw(...);
Return Value
메서드가 성공하면 true를 반환하고, 그렇지 않으면 false를 반환합니다.
설명
절대 형식의 보안 설명자는 정보 자체를 포함하지 않고 포함된 정보에 대한 포인터를 포함합니다. 자체 상대 형식의 보안 설명자는 인접한 메모리 블록의 정보를 포함합니다. 자체 상대 보안 설명자 SECURITY_DESCRIPTOR
에서 구조는 항상 정보를 시작하지만 보안 설명자의 다른 구성 요소는 어떤 순서로든 구조를 따를 수 있습니다. 메모리 주소를 사용하는 대신 보안 설명자의 구성 요소는 보안 설명자의 시작 부분에서 오프셋으로 식별됩니다. 이 형식은 보안 설명자를 디스크에 저장하거나 통신 프로토콜을 통해 전송해야 하는 경우에 유용합니다. 자세한 내용은 절대 및 자체 상대 보안 설명자를 참조 하세요.
CSecurityDesc::operator =
대입 연산자입니다.
CSecurityDesc& operator= (const SECURITY_DESCRIPTOR& rhs) throw(...);
CSecurityDesc& operator= (const CSecurityDesc& rhs) throw(...);
매개 변수
rhs
SECURITY_DESCRIPTOR
개체에 할당할 구조체 또는 CSecurityDesc
개체입니다CSecurityDesc
.
Return Value
업데이트 CSecurityDesc
된 개체를 반환합니다.
CSecurityDesc::operator const SECURITY_DESCRIPTOR *
값을 구조체에 대한 포인터로 캐스팅합니다 SECURITY_DESCRIPTOR
.
operator const SECURITY_DESCRIPTOR *() const throw();
CSecurityDesc::SetControl
보안 설명자의 제어 비트를 설정합니다.
bool SetControl(
SECURITY_DESCRIPTOR_CONTROL ControlBitsOfInterest,
SECURITY_DESCRIPTOR_CONTROL ControlBitsToSet) throw();
매개 변수
ControlBitsOfInterest
설정할 컨트롤 비트를 나타내는 SECURITY_DESCRIPTOR_CONTROL 마스크입니다. 설정할 수 있는 플래그 목록은 SetSecurityDescriptorControl을 참조하세요.
ControlBitsToSet
ControlBitsOfInterest 마스크로 지정된 컨트롤 비트의 새 값을 나타내는 SECURITY_DESCRIPTOR_CONTROL 마스크입니다. 이 매개 변수는 ControlBitsOfInterest 매개 변수에 대해 나열된 플래그의 조합일 수 있습니다.
Return Value
성공하면 true를 반환하고 실패하면 false를 반환합니다.
설명
이 메서드는 SetSecurityDescriptorControl을 호출합니다.
CSecurityDesc::SetDacl
DACL(임의 액세스 제어 목록)의 정보를 설정합니다. DACL이 보안 설명자에 이미 있는 경우 대체됩니다.
inline void SetDacl(
bool bPresent = true,
bool bDefaulted = false) throw(...);
inline void SetDacl(
const CDacl& Dacl,
bool bDefaulted = false) throw(...);
매개 변수
Dacl
CDacl
보안 설명자에 대한 DACL을 지정하는 개체에 대한 참조입니다. 이 매개 변수는 NULL이 아니어야 합니다. 보안 설명자에서 NULL DACL을 설정하려면 메서드의 첫 번째 형식을 bPresent가 false로 설정된 상태에서 사용해야 합니다.
bPresent
보안 설명자에 DACL이 있음을 나타내는 플래그를 지정합니다. 이 매개 변수가 true이면 메서드는 구조체에서 SE_DACL_PRESENT 플래그를 SECURITY_DESCRIPTOR_CONTROL
설정하고 Dacl 및 bDefaulted 매개 변수의 값을 사용합니다. false이면 메서드는 SE_DACL_PRESENT 플래그를 지우고 bDefaulted 는 무시됩니다.
bDefaulted
DACL의 원본을 나타내는 플래그를 지정합니다. 이 플래그가 true이면 DACL이 일부 기본 메커니즘에 의해 검색되었습니다. false이면 DACL이 사용자가 명시적으로 지정했습니다. 메서드는 구조체의 SE_DACL_DEFAULTED 플래그에 이 값을 저장합니다 SECURITY_DESCRIPTOR_CONTROL
. 이 매개 변수를 지정하지 않으면 SE_DACL_DEFAULTED 플래그가 지워집니다.
Return Value
성공하면 true를 반환하고 실패하면 false를 반환합니다.
설명
빈 DACL과 존재하지 않는 DACL 사이에는 중요한 차이점이 있습니다. DACL이 비어 있으면 액세스 제어 항목이 없고 액세스 권한이 명시적으로 부여되지 않았습니다. 따라서 개체에 대한 액세스가 암시적으로 거부됩니다. 반면 개체에 DACL이 없으면 개체에 보호가 할당되지 않으며 액세스 요청이 부여됩니다.
CSecurityDesc::SetGroup
절대 형식 보안 설명자의 기본 그룹 정보를 설정하여 이미 있는 기본 그룹 정보를 대체합니다.
bool SetGroup(const CSid& Sid, bool bDefaulted = false) throw(...);
매개 변수
Sid
보안 설명자의 새 기본 그룹에 대한 CSid 개체에 대한 참조입니다. 이 매개 변수는 NULL이 아니어야 합니다. 보안 설명자는 DACL 또는 SACL이 없는 것으로 표시될 수 있지만 그룹 및 소유자가 있어야 하며, NULL SID(특별한 의미를 갖는 기본 제공 SID임)조차도 있어야 합니다.
bDefaulted
기본 그룹 정보가 기본 메커니즘에서 파생되었는지 여부를 나타냅니다. 이 값이 true이면 기본 정보이며 메서드는 이 값을 구조체의 SE_GROUP_DEFAULTED 플래그 SECURITY_DESCRIPTOR_CONTROL
로 저장합니다. 이 매개 변수가 0이면 SE_GROUP_DEFAULTED 플래그가 지워집니다.
Return Value
성공하면 true를 반환하고 실패하면 false를 반환합니다.
CSecurityDesc::SetOwner
절대 형식 보안 설명자의 소유자 정보를 설정합니다. 이미 있는 소유자 정보를 대체합니다.
bool SetOwner(const CSid& Sid, bool bDefaulted = false) throw(...);
매개 변수
Sid
보안 설명자의 새 기본 소유자에 대한 CSid 개체입니다. 이 매개 변수는 NULL이 아니어야 합니다.
bDefaulted
소유자 정보가 기본 메커니즘에서 파생되는지 여부를 나타냅니다. 이 값이 true이면 기본 정보입니다. 메서드는 이 값을 구조체의 SE_OWNER_DEFAULTED 플래그 SECURITY_DESCRIPTOR_CONTROL
로 저장합니다. 이 매개 변수가 0이면 SE_OWNER_DEFAULTED 플래그가 지워집니다.
Return Value
성공하면 true를 반환하고 실패하면 false를 반환합니다.
CSecurityDesc::SetSacl
SACL(시스템 액세스 제어 목록)의 정보를 설정합니다. SACL이 보안 설명자에 이미 있는 경우 대체됩니다.
bool SetSacl(const CSacl& Sacl, bool bDefaulted = false) throw(...);
매개 변수
Sacl
CSacl
보안 설명자에 대한 SACL을 지정하는 개체에 대한 포인터입니다. 이 매개 변수는 NULL이 아니어야 하며 CSacl 개체여야 합니다. SACL 개체는 액세스 권한을 지정하지 않고 감사 정보만 지정하므로 DACL과 달리 NULL과 빈 SACL 사이에는 차이가 없습니다.
bDefaulted
SACL의 원본을 나타내는 플래그를 지정합니다. 이 플래그가 true이면 SACL이 일부 기본 메커니즘에 의해 검색되었습니다. false이면 SACL이 사용자가 명시적으로 지정했습니다. 메서드는 구조체의 SE_SACL_DEFAULTED 플래그에 이 값을 저장합니다 SECURITY_DESCRIPTOR_CONTROL
. 이 매개 변수를 지정하지 않으면 SE_SACL_DEFAULTED 플래그가 지워집니다.
Return Value
성공하면 true를 반환하고 실패하면 false를 반환합니다.
CSecurityDesc::ToString
보안 설명자를 문자열 형식으로 변환합니다.
bool ToString(
CString* pstr, SECURITY_INFORMATION si = OWNER_SECURITY_INFORMATION |
GROUP_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION |
SACL_SECURITY_INFORMATION) const throw(...);
매개 변수
pstr
문자열 형식 보안 설명자를 받을 null로 끝나는 문자열에 대한 포인터입니다.
si
출력 문자열에 포함할 보안 설명자의 구성 요소를 나타내는 SECURITY_INFORMATION 비트 플래그의 조합을 지정합니다.
Return Value
성공하면 true를 반환하고 실패하면 false를 반환합니다.
설명
보안 설명자가 문자열 형식이 되면 보다 쉽게 저장하거나 전송할 수 있습니다. 이 메서드를 CSecurityDesc::FromString
사용하여 문자열을 다시 보안 설명자로 변환합니다.
si 매개 변수는 다음 SECURITY_INFORMATION 플래그를 포함할 수 있습니다.
값 | 의미 |
---|---|
OWNER_SECURITY_INFORMATION | 소유자를 포함합니다. |
GROUP_SECURITY_INFORMATION | 기본 그룹을 포함합니다. |
DACL_SECURITY_INFORMATION | DACL을 포함합니다. |
SACL_SECURITY_INFORMATION | SACL을 포함합니다. |
DACL이 NULL이고 입력 보안 설명자에 SE_DACL_PRESENT 컨트롤 비트가 설정되면 메서드가 실패합니다.
DACL이 NULL이고 SE_DACL_PRESENT 컨트롤 비트가 입력 보안 설명자에 설정되지 않은 경우 결과 보안 설명자 문자열에는 D: 구성 요소가 없습니다. 자세한 내용은 보안 설명자 문자열 형식을 참조하세요.
이 메서드는 ConvertStringSecurityDescriptorToSecurityDescriptor를 호출 합니다.