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
セキュリティ記述子用に DACL を指定する CDacl のオブジェクトへの参照。このパラメーターは null 以外である必要があります。セキュリティ記述子の null DACL を設定するには、メソッドの最初は false に設定 bPresent に使用する必要があります。bPresent
DACL が存在するかどうかを示すフラグでセキュリティ記述子を指定します。このパラメーターが TRUE の場合、メソッドは SECURITY_DESCRIPTOR_CONTROL の構造体の SE_DACL_PRESENT のフラグを設定し、Dacl と bDefaulted のパラメーターの値が使用されます。これが false の場合、メソッドは SE_DACL_PRESENT のフラグをクリアし、bDefaulted は無視されます。bDefaulted
DACL のソースを示すフラグを指定します。このフラグが true の場合、DACL は、既定の機構によって取得されました。false の場合、DACL は、ユーザーによって明示的に指定されました。メソッドは SECURITY_DESCRIPTOR_CONTROL の構造体の SE_DACL_DEFAULTED のフラグでこの値を格納します。このパラメーターが指定されていない場合、SE_DACL_DEFAULTED フラグをクリアされます。
戻り値
正常に終了した場合は true を返します。それ以外の場合は false を返します。
解説
空の DACL 存在しない間には重要な違いがあります。DACL が空の場合、アクセス制御エントリを含まず、アクセス権は明示的に許可されていません。その結果、オブジェクトへのアクセスは暗黙的に拒否されます。オブジェクトに DACL が、一方でない場合、保護は、オブジェクトに割り当てられておらず、アクセス要求が許可されます。
必要条件
ヘッダー : atlsecurity.h