CAutoRevertImpersonation クラス
このクラスは、CAccessToken オブジェクトがスコープ外に出た場合に非偽装状態に戻します。
構文
class CAutoRevertImpersonation
メンバー
パブリック コンストラクター
名前 | 説明 |
---|---|
CAutoRevertImpersonation::CAutoRevertImpersonation | CAutoRevertImpersonation オブジェクトを構築します。 |
CAutoRevertImpersonation::~CAutoRevertImpersonation | オブジェクトを破棄し、アクセス トークンの偽装を元に戻します。 |
パブリック メソッド
名前 | 説明 |
---|---|
CAutoRevertImpersonation::Attach | アクセス トークンの偽装の復帰を自動化します。 |
CAutoRevertImpersonation::Detach | 偽装の自動復帰を取り消します。 |
CAutoRevertImpersonation::GetAccessToken | このオブジェクトに現在関連付けられているアクセス トークンを取得します。 |
解説
アクセス トークンは、プロセスまたはスレッドのセキュリティ コンテキストを記述するオブジェクトであり、Windows NT または Windows 2000 システムにログオンしている各ユーザーに割り当てられます。 これらのアクセス トークンは、CAccessToken
クラスで表すことができます。
アクセス トークンを偽装する必要がある場合があります。 このクラスは利便性のために提供されますが、アクセス トークンの偽装は実行されません。これは、非偽装状態への自動復帰のみを実行します。 これは、トークン アクセスの偽装は、いくつかの異なる方法で実行できるためです。
Windows のアクセス制御モデルの概要については、Windows SDK のアクセス制御に関するページをご覧ください。
要件
ヘッダー: atlsecurity.h
CAutoRevertImpersonation::Attach
アクセス トークンの偽装の復帰を自動化します。
void Attach(const CAccessToken* pAT) throw();
パラメーター
pAT
自動的に元に戻す CAccessToken オブジェクトのアドレス
解説
このメソッドは、CAutoRevertImpersonation オブジェクトが NULL CAccessToken
ポインターを使用して作成された場合、または Detach が以前に呼び出された場合にのみ使用してください。 単純なケースでは、このメソッドを使用する必要はありません。
CAutoRevertImpersonation::CAutoRevertImpersonation
CAutoRevertImpersonation
オブジェクトを構築します。
CAutoRevertImpersonation(const CAccessToken* pAT) throw();
パラメーター
pAT
自動的に元に戻す CAccessToken オブジェクトのアドレス。
解説
アクセス トークンの実際の偽装は、CAutoRevertImpersonation
オブジェクトを作成する前に、これとは別に任意で実行する必要があります。 CAutoRevertImpersonation
オブジェクトがスコープ外に出た場合、この偽装は自動的に元に戻されます。
CAutoRevertImpersonation::~CAutoRevertImpersonation
オブジェクトを破棄し、アクセス トークンの偽装を元に戻します。
~CAutoRevertImpersonation() throw();
解説
構築時または Attach メソッドを使用して提供される CAccessToken オブジェクトに対して現在有効な偽装を元に戻します。 CAccessToken
が関連付けられていない場合、デストラクターは効果がありません。
CAutoRevertImpersonation::Detach
偽装の自動復帰を取り消します。
const CAccessToken* Detach() throw();
戻り値
以前に関連付けられた CAccessToken のアドレス。関連付けがない場合は NULL。
解説
Detach を呼び出すことによって、CAutoRevertImpersonation
オブジェクトが、このオブジェクトに関連付けられている CAccessToken オブジェクトに対して現在有効な偽装を元に戻すのを防ぎます。 CAutoRevertImpersonation
は、影響なしで破棄したり、Attach を使用して同じオブジェクトまたは別の CAccessToken
オブジェクトに再び関連付けることができます。
CAutoRevertImpersonation::GetAccessToken
このオブジェクトに現在関連付けられているアクセス トークンを取得します。
const CAccessToken* GetAccessToken() throw();
戻り値
以前に関連付けられた CAccessToken のアドレス。関連付けがない場合は NULL。
解説
CAccessToken
オブジェクトの偽装の復帰を含む目的でこのメソッドを呼び出す場合は、代わりに Detach メソッドを使用する必要があります。