CSecurityDesc::SetDacl

设置在自由访问控制列表(acl) (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,则方法在 DACL 和 bDefaulted 参数将 SECURITY_DESCRIPTOR_CONTROL 结构的SE_DACL_PRESENT标志并使用值。如果为false,则清除SE_DACL_PRESENT标志,并且,bDefaulted 被忽略。

  • bDefaulted
    指定指示DACL的源标志。如果此标志设置为true,则由某个默认结构检索过。如果为false,则由用户显式指定的。方法在 SECURITY_DESCRIPTOR_CONTROL 结构的SE_DACL_DEFAULTED标志存储该值。如果此参数未指定,则清除SE_DACL_DEFAULTED标志。

返回值

如果成功,则返回 true;如果失败,则返回 false。

备注

具有null和不存在的DACL之间的重要差异。当DACL为空时,它不包含访问控制项,并且未显式授予访问权限。因此,访问对象的隐式拒绝。当对象没有DACL,另一方面时,从而保护未指派给对象,并且,授予所有访问请求。

要求

Header: atlsecurity.h

请参见

参考

CSecurityDesc选件类

SetSecurityDescriptorDacl

CSecurityDesc::SetControl

CSecurityDesc::SetGroup

CSecurityDesc::SetOwner

CSecurityDesc::SetSacl

CSecurityDesc::GetDacl