CAcl クラス
このクラスは、ACL
(アクセス制御リスト) 構造体のラッパーです。
重要
このクラスとそのメンバーは、Windows ランタイムで実行するアプリケーションで使用することはできません。
構文
class CAcl
メンバー
パブリック typedef
名前 | 説明 |
---|---|
CAcl::CAccessMaskArray | ACCESS_MASK の配列。 |
CAcl::CAceFlagArray | BYTE の配列。 |
CAcl::CAceTypeArray | BYTE の配列。 |
パブリック コンストラクター
名前 | 説明 |
---|---|
CAcl::CAcl | コンストラクター。 |
CAcl::~CAcl | デストラクター。 |
パブリック メソッド
名前 | 説明 |
---|---|
CAcl::GetAceCount | アクセス制御エントリ (ACE) オブジェクトの数を返します。 |
CAcl::GetAclEntries | CAcl オブジェクトからアクセス制御リスト (ACL) エントリを取得します。 |
CAcl::GetAclEntry | CAcl オブジェクトのエントリに関するすべての情報を取得します。 |
CAcl::GetLength | ACL の長さを返します。 |
CAcl::GetPACL | PACL (ACL へのポインター) を返します。 |
CAcl::IsEmpty | CAcl オブジェクトのエントリをテストします。 |
CAcl::IsNull | CAcl オブジェクトの状態を返します。 |
CAcl::RemoveAce | CAcl オブジェクトから特定の ACE (アクセス制御エントリ) を削除します。 |
CAcl::RemoveAces | 指定された CSid に適用されるすべての ACE (アクセス制御エントリ) を CAcl から削除します。 |
CAcl::SetEmpty | CAcl オブジェクトを空としてマークします。 |
CAcl::SetNull | CAcl オブジェクトを NULL としてマークします。 |
パブリック演算子
名前 | 説明 |
---|---|
CAcl::operator const ACL * | CAcl オブジェクトを ACL 構造体にキャストします。 |
CAcl::operator = | 代入演算子。 |
解説
ACL
構造体は、ACL (アクセス制御リスト) のヘッダーです。 ACL には、0 個以上の ACE (アクセス制御エントリ) の連続したリストが含まれます。 ACL 内の個々の ACE には、0 から n-1 の番号が付けられます。ここで、n は ACL 内の ACE の数です。 ACL の編集時に、アプリケーションでは、ACL 内のアクセス制御エントリ (ACE) をそのインデックスで参照します。
ACL には次の 2 種類があります。
随意
System
随意 ACL は、オブジェクトの所有者またはオブジェクトへの WRITE_DAC アクセスを許可されたユーザーによって制御されます。 特定のユーザーおよびグループがオブジェクトに対して持つことができるアクセス権を指定します。 たとえば、ファイルの所有者は随意 ACL を使用して、ユーザーとグループのうち、ファイルにアクセスできるものとできないものを制御することができます。
また、オブジェクトには、システム管理者によって制御されるシステム ACL の形式で、システムレベルのセキュリティ情報を関連付けることもできます。 システム ACL を使用すると、システム管理者は、オブジェクトへのアクセスの試行を監査できます。
詳細については、Windows SDK の ACL に関する説明を参照してください。
Windows のアクセス制御モデルの概要については、Windows SDK のアクセス制御に関するページをご覧ください。
要件
ヘッダー: atlsecurity.h
CAcl::CAccessMaskArray
ACCESS_MASK オブジェクトの配列。
typedef CAtlArray<ACCESS_MASK> CAccessMaskArray;
解説
この typedef では、アクセス制御エントリ (ACE) で使用されるアクセス権を格納するために使用できる配列型を指定します。
CAcl::CAceFlagArray
BYTE の配列。
typedef CAtlArray<BYTE> CAceFlagArray;
解説
この typedef では、アクセス制御エントリ (ACE) の型固有のコントロール フラグを定義するために使用される配列型を指定します。 使用可能なフラグの完全な一覧については、ACE_HEADER の定義を参照してください。
CAcl::CAceTypeArray
BYTE の配列。
typedef CAtlArray<BYTE> CAceTypeArray;
解説
この typedef では、ACCESS_ALLOWED_ACE_TYPE や ACCESS_DENIED_ACE_TYPE など、アクセス制御エントリ (ACE) オブジェクトの性質を定義するために使用される配列型を指定します。 使用可能な型の完全な一覧については、ACE_HEADER の定義を参照してください。
CAcl::CAcl
コンストラクター。
CAcl() throw();
CAcl(const CAcl& rhs) throw(...);
パラメーター
rhs
既存の CAcl
オブジェクトです。
解説
CAcl
オブジェクトは、必要に応じて、既存の CAcl
オブジェクトを使用して作成できます。
CAcl::~CAcl
デストラクター。
virtual ~CAcl() throw();
解説
デストラクターは、オブジェクトによって取得されたすべてのリソースを解放します。
CAcl::GetAceCount
アクセス制御エントリ (ACE) オブジェクトの数を返します。
virtual UINT GetAceCount() const throw() = 0;
戻り値
CAcl
オブジェクト内の ACE エントリの数を返します。
CAcl::GetAclEntries
CAcl
オブジェクトからアクセス制御リスト (ACL) エントリを取得します。
void GetAclEntries(
CSid::CSidArray* pSids,
CAccessMaskArray* pAccessMasks = NULL,
CAceTypeArray* pAceTypes = NULL,
CAceFlagArray* pAceFlags = NULL) const throw(...);
パラメーター
pSids
CSid オブジェクトの配列へのポインター。
pAccessMasks
アクセス マスク。
pAceTypes
アクセス制御エントリ (ACE) の型。
pAceFlags
ACE フラグ。
解説
このメソッドでは、CAcl
オブジェクトに含まれるすべての ACE オブジェクトの詳細を配列パラメーターに格納します。 その特定の配列の詳細が不要な場合は、NULL を使用します。
各配列の内容は互いに対応しています。つまり、CAccessMaskArray
配列の最初の要素は CSidArray
配列の最初の要素に対応します。
ACE の型とフラグの詳細については、「ACE_HEADER」を参照してください。
CAcl::GetAclEntry
アクセス制御リスト (ACL) のエントリに関するすべての情報を取得します。
void GetAclEntry(
UINT nIndex,
CSid* pSid,
ACCESS_MASK* pMask = NULL,
BYTE* pType = NULL,
BYTE* pFlags = NULL,
GUID* pObjectType = NULL,
GUID* pInheritedObjectType = NULL) const throw(...);
パラメーター
nIndex
取得する ACL エントリのインデックス。
pSid
ACL エントリが適用される CSid オブジェクト。
pMask
アクセスを許可または拒否する権限を指定するマスク。
pType
ACE 型。
pFlags
ACE フラグ。
pObjectType
オブジェクトの種類。 ACE にオブジェクトの型が指定されていない場合、または ACE が OBJECT ACE でない場合は、GUID_NULL に設定されます。
pInheritedObjectType
継承されたオブジェクトの型。 継承されたオブジェクトの型が ACE に指定されていない場合、または ACE が OBJECT ACE でない場合は、GUID_NULL に設定されます。
解説
このメソッドでは、個々の ACE に関するすべての情報を取得します。CAcl::GetAclEntries 単独の場合より多くの情報が得られます。
ACE の型とフラグの詳細については、「ACE_HEADER」を参照してください。
CAcl::GetLength
アクセス制御リスト (ACL) の長さを返します。
UINT GetLength() const throw();
戻り値
ACL
構造体を保持するために必要なバイト単位の長さを返します。
CAcl::GetPACL
アクセス制御リスト (ACL) へのポインターを返します。
const ACL* GetPACL() const throw(...);
戻り値
ACL
構造体を指すポインターを返します。
CAcl::IsEmpty
CAcl
オブジェクトのエントリをテストします。
bool IsEmpty() const throw();
解説
CAcl
オブジェクトが NULL ではなく、エントリが含まれていない場合は TRUE を返します。 CAcl
オブジェクトが NULL であるか、エントリが少なくとも 1 つ含まれている場合は FALSE を返します。
CAcl::IsNull
CAcl
オブジェクトの状態を返します。
bool IsNull() const throw();
戻り値
CAcl
オブジェクトが NULL の場合は TRUE、それ以外の場合は FALSE を返します。
CAcl::operator const ACL *
CAcl
オブジェクトを ACL
(アクセス制御リスト) 構造体にキャストします。
operator const ACL *() const throw(...);
解説
ACL
構造体のアドレスを返します。
CAcl::operator =
代入演算子。
CAcl& operator= (const CAcl& rhs) throw(...);
パラメーター
rhs
既存のオブジェクトに代入する CAcl
。
戻り値
更新された CAcl
オブジェクトへの参照を返します。
CAcl::RemoveAce
CAcl
オブジェクトから特定の ACE (アクセス制御エントリ) を削除します。
void RemoveAce(UINT nIndex) throw();
パラメーター
nIndex
削除する ACE エントリのインデックス。
解説
このメソッドは、CAtlArray::RemoveAt から派生します。
CAcl::RemoveAces
指定された CSid
に適用されるすべての ACE (アクセス制御エントリ) を CAcl
から削除します。
bool RemoveAces(const CSid& rSid) throw(...)
パラメーター
rSid
CSid
オブジェクトへの参照です。
CAcl::SetEmpty
CAcl
オブジェクトを空としてマークします。
void SetEmpty() throw();
解説
CAcl
は、空または NULL に設定できます。これら 2 つの状態は異なります。
CAcl::SetNull
CAcl
オブジェクトを NULL としてマークします。
void SetNull() throw();
解説
CAcl
は、空または NULL に設定できます。これら 2 つの状態は異なります。