次の方法で共有


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 メソッドを使用する必要があります。

関連項目

ATLSecurity Sample
アクセス トークン
クラスの概要