次の方法で共有


オブジェクトの DACL の取得

オブジェクトのセキュリティ記述子には、随意アクセス制御リスト (DACL) を含めることができます。 DACL には、オブジェクトにアクセスできるユーザーとグループを識別する 0 個以上のアクセス制御エントリ (ACE) が含まれています。 DACL が空 (つまり、0 個の ACE を含む) の場合、明示的に許可されるアクセスはありません。そのため、アクセスは暗黙的に拒否されます。 ただし、オブジェクトのセキュリティ記述子に DACL が含まれていない場合、オブジェクトは保護されず、すべてのユーザーが完全なアクセス権を持ちます。

オブジェクトの DACL を取得するには、オブジェクトの所有者 であるか、オブジェクトにREAD_CONTROL アクセスできる必要があります。

ディレクトリ オブジェクトの DACL を取得して設定するには、IADsSecurityDescriptor インターフェイスを使用します。 C++ を使用して、IADsSecurityDescriptor::get_DiscretionaryAcl メソッドは IDispatch ポインターを返します。 その IDispatch ポインターで QueryInterface を呼び出して IADsAccessControlList インターフェイスを取得し、そのインターフェイスのメソッドを使用して DACL 内の個々の ACE にアクセスします。 DACL を変更する手順については、オブジェクトに対するアクセス権の設定に 関するページを参照してください

ACE を列挙するには、IADsAccessControlList::get__NewEnum メソッドを使用します。 このメソッドは IUnknown ポインターを返します。 IEnumVARIANT インターフェイスを取得するには、その IUnknown ポインターで QueryInterface を呼び出します。 ACL の ACE を列挙するには、IEnumVARIANT::Next メソッドを使用します。 各 ACE は、IDispatch ポインターを含む VARIANT として返されます (vt メンバーはVT_DISPATCH)。 その IDispatch ポインターで QueryInterface を呼び出して、ACE の IADsAccessControlEntry インターフェイスを取得します。 IADsAccessControlEntry インターフェイスのメソッドを使用して、ACE のコンポーネントを設定または取得できます。

DAC と ACE の詳細については、プラットフォーム ソフトウェア開発キット (SDK) の次のトピックを参照してください。