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
自动执行访问令牌的模拟重新转换。
void Attach(const CAccessToken* pAT) throw();
pAT
要自动还原的 CAccessToken 对象的地址
仅当 CAutoRevertImpersonation 对象是使用 NULL CAccessToken
指针创建的,或者以前调用 Detach 时,才应使用此方法。 对于简单情况,不需要使用此方法。
构造 CAutoRevertImpersonation
对象。
CAutoRevertImpersonation(const CAccessToken* pAT) throw();
pAT
要自动还原的 CAccessToken 对象的地址。
应该单独创建访问令牌的实际模拟,最好在创建 CAutoRevertImpersonation
对象之前创建。 当 CAutoRevertImpersonation
对象超出范围时,将自动还原此模拟。
销毁对象并还原访问令牌模拟。
~CAutoRevertImpersonation() throw();
还原当前在构造时或通过 Attach 方法提供的 CAccessToken 对象当前有效的任何模拟。 如果没有关联 CAccessToken
,析构函数将不起作用。
取消自动模拟重新转换。
const CAccessToken* Detach() throw();
以前关联的 CAccessToken 的地址;如果没有关联,则为 NULL。
调用 Detach 可防止 CAutoRevertImpersonation
对象还原与此对象关联的 CAccessToken 对象当前生效的任何模拟。 然后,可以使用 Attach 销毁 CAutoRevertImpersonation
而与另一个 CAccessToken
对象无关或者重新关联。
检索与此对象关联的当前访问令牌。
const CAccessToken* GetAccessToken() throw();
以前关联的 CAccessToken 的地址;如果没有关联,则为 NULL。
如果为包含 CAccessToken
对象模拟的重新转换目的调用此方法,则应改用 Detach 方法。
ATLSecurity 示例
访问令牌
类概述