CAccessToken::OpenThreadToken
偽装レベルを設定してから、指定されたスレッドからのトークンを使用して CAccessToken を初期化します。
bool OpenThreadToken(
DWORD dwDesiredAccess,
bool bImpersonate = false,
bool bOpenAsSelf = true,
SECURITY_IMPERSONATION_LEVEL sil = SecurityImpersonation
) throw(...);
パラメーター
dwDesiredAccess
アクセス トークンへのアクセス時に要求されるアクセスの種類を指定するアクセス マスク。 要求されたアクセスの種類は、許可または拒否するアクセスを決定するために、トークンの DACL と比較されます。bImpersonate
true の場合、スレッドはメソッドの完了後に、要求された偽装レベルに残ります。 false の場合、スレッドは元の偽装レベルに戻ります。bOpenAsSelf
GetThreadToken メソッドを呼び出すスレッドのセキュリティ コンテキスト、または呼び出しスレッドのプロセスのセキュリティ コンテキストのどちらに対してアクセス チェックを行うかを指定します。パラメーターが false の場合、呼び出しスレッドのセキュリティ コンテキストを使用してアクセス チェックが行われます。 スレッドがクライアントを偽装する場合、このセキュリティ コンテキストはクライアント プロセスのセキュリティ コンテキストであってもかまいません。 パラメーターが true の場合は、呼び出しスレッドのプロセスのセキュリティ コンテキストを使用してアクセス チェックが行われます。
sil
トークンの偽装レベルを提供する SECURITY_IMPERSONATION_LEVEL 列挙型。
戻り値
正常に終了した場合は true を返します。それ以外の場合は false を返します。
解説
OpenThreadToken は CAccessToken::GetThreadToken とよく似ていますが、スレッドのアクセス トークンを使用して CAccessToken を初期化する前に、偽装レベルを設定する点が異なります。
CAutoRevertImpersonation クラス を使用して、bImpersonate フラグを true に設定して作成された偽装アクセス トークンを自動的に復帰できます。
必要条件
**ヘッダー:**atlsecurity.h