CSacl クラス
このクラスは、SACL (システム アクセス制御リスト) 構造体のラッパーです。
重要
このクラスとそのメンバーは、Windows ランタイムで実行するアプリケーションで使用することはできません。
構文
class CSacl : public CAcl
メンバー
パブリック コンストラクター
名前 | 説明 |
---|---|
CSacl::CSacl | コンストラクター。 |
CSacl::~CSacl | デストラクター。 |
パブリック メソッド
名前 | 説明 |
---|---|
CSacl::AddAuditAce | CSacl オブジェクトに監査アクセス制御エントリ (ACE) を追加します。 |
CSacl::GetAceCount | CSacl オブジェクト内のアクセス制御エントリ (ACE) の数を返します。 |
CSacl::RemoveAce | CSacl オブジェクトから特定の ACE (アクセス制御エントリ) を削除します。 |
CSacl::RemoveAllAces | CSacl オブジェクトに含まれるすべての ACE を削除します。 |
パブリック演算子
名前 | 説明 |
---|---|
CSacl::operator = | 代入演算子。 |
解説
SACL には、アクセス制御エントリ (ACE) が含まれています。これらは、ドメイン コントローラーのセキュリティ イベント ログに監査レコードを生成するアクセス試行の種類を指定します。 SACL では、オブジェクトのレプリカを含むすべてのドメイン コントローラーではなく、アクセス試行が発生したドメイン コントローラーでのみログ エントリが生成されることに注意してください。
オブジェクトの SACL を設定または取得するには、要求元のスレッドのアクセス トークンで SE_SECURITY_NAME 特権が有効になっている必要があります。 管理者グループには、既定でこの特権が付与され、それを他のユーザーまたはグループに付与できます。 必要なのは特権を付与することだけではあります。特権によって定義された操作を実行できるようにするには、その前に、セキュリティ アクセス トークンで特権を有効にする必要があります。 このモデルでは、特定のシステム操作に対してのみ特権を有効にし、不要になったときに無効にすることができます。 SE_SECURITY_NAME の有効化の例については、「AtlGetSacl」と「AtlSetSacl」を参照してください。
SACL
オブジェクトの ACE の追加、削除、作成を行うには、提供されているクラス メソッドを使用します。 「AtlGetSacl」および「AtlSetSacl」も参照してください。
Windows のアクセス制御モデルの概要については、Windows SDK のアクセス制御に関するページをご覧ください。
継承階層
CSacl
要件
ヘッダー: atlsecurity.h
CSacl::AddAuditAce
CSacl
オブジェクトに監査アクセス制御エントリ (ACE) を追加します。
bool AddAuditAce(
const CSid& rSid,
ACCESS_MASK AccessMask,
bool bSuccess,
bool bFailure,
BYTE AceFlags = 0) throw(...);
bool AddAuditAce(
const CSid& rSid,
ACCESS_MASK AccessMask,
bool bSuccess,
bool bFailure,
BYTE AceFlags,
const GUID* pObjectType,
const GUID* pInheritedObjectType) throw(...);
パラメーター
rSid
CSid オブジェクト。
AccessMask
指定された CSid
オブジェクトの監査されるアクセス権のマスクを指定します。
bSuccess
許可されたアクセス試行を監査するかどうかを指定します。 監査を有効にするには、このフラグを true に設定します。それ以外の場合は false に設定します。
bFailure
拒否されたアクセス試行を監査するかどうかを指定します。 監査を有効にするには、このフラグを true に設定します。それ以外の場合は false に設定します。
AceFlags
ACE 継承を制御するビット フラグのセット。
pObjectType
オブジェクトの種類。
pInheritedObjectType
継承されたオブジェクトの型。
戻り値
ACE が CSacl
オブジェクトに追加された場合は TRUE、失敗した場合は FALSE を返します。
解説
CSacl
には、アクセス制御エントリ (ACE) が含まれています。これらは、セキュリティ イベント ログに監査レコードを生成するアクセス試行の種類を指定します。 このメソッドによって、このような ACE が CSacl
オブジェクトに追加されます。
AceFlags パラメーターで設定できるさまざまなフラグの説明については、「ACE_HEADER」を参照してください。
CSacl::CSacl
コンストラクター。
CSacl() throw();
CSacl(const ACL& rhs) throw(...);
パラメーター
rhs
既存の ACL
(アクセス制御リスト) 構造体。
解説
CSacl
オブジェクトは、必要に応じて、既存の ACL
構造体を使用して作成できます。 このパラメーターは、随意アクセス制御リスト (DACL) ではなくシステム アクセス制御リスト (SACL) である必要があります。 デバッグ ビルドでは、DACL が指定されると、アサーションが発生します。 リリース ビルドでは、DACL からのエントリはすべて無視されます。
CSacl::~CSacl
デストラクター。
~CSacl() throw();
解説
デストラクターによって、すべてのアクセス制御エントリ (ACE) を含め、オブジェクトで取得されたすべてのリソースが解放されます。
CSacl::GetAceCount
CSacl
オブジェクト内のアクセス制御エントリ (ACE) の数を返します。
UINT GetAceCount() const throw();
戻り値
CSacl
オブジェクトに含まれる ACE の数を返します。
CSacl::operator =
代入演算子。
CSacl& operator=(const ACL& rhs) throw(...);
パラメーター
rhs
既存のオブジェクトに割り当てる ACL
(アクセス制御リスト)。
戻り値
更新された CSacl
オブジェクトへの参照を返します。 ACL
パラメーターは、実際に、随意アクセス制御リスト (DACL) ではなくシステム アクセス制御リスト (SACL) である必要があります。 デバッグ ビルドでは、アサーションが発生し、リリース ビルドでは、ACL
パラメーターが無視されます。
CSacl::RemoveAce
CSacl
オブジェクトから特定の ACE (アクセス制御エントリ) を削除します。
void RemoveAce(UINT nIndex) throw();
パラメーター
nIndex
削除する ACE エントリのインデックス。
解説
このメソッドは、CAtlArray::RemoveAt から派生します。
CSacl::RemoveAllAces
CSacl
オブジェクトに含まれるすべてのアクセス制御エントリ (ACE) を削除します。
void RemoveAllAces() throw();
解説
CSacl
オブジェクト内のすべての ACE
構造体を削除します (ある場合)。