使用英语阅读

通过


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 对象当前生效的任何模拟。 然后,可以使用 Attach 销毁 CAutoRevertImpersonation 而与另一个 CAccessToken 对象无关或者重新关联。

CAutoRevertImpersonation::GetAccessToken

检索与此对象关联的当前访问令牌。

const CAccessToken* GetAccessToken() throw();

返回值

以前关联的 CAccessToken 的地址;如果没有关联,则为 NULL。

备注

如果为包含 CAccessToken 对象模拟的重新转换目的调用此方法,则应改用 Detach 方法。

另请参阅

ATLSecurity 示例
访问令牌
类概述