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 種類があります。

  • 随意

  • システム

随意 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 つの状態は異なります。

関連項目

クラスの概要
セキュリティに関するグローバル関数