CTokenGroups 类

此类是 TOKEN_GROUPS 结构的包装器。

重要

无法在 Windows 运行时中执行的应用程序中使用此类及其成员。

语法

class CTokenGroups

成员

公共构造函数

名称 描述
CTokenGroups::CTokenGroups 构造函数。
CTokenGroups::~CTokenGroups 析构函数。

公共方法

名称 描述
CTokenGroups::Add CTokenGroups 对象添加 CSid 或现有 TOKEN_GROUPS 结构。
CTokenGroups::Delete CTokenGroups 对象中删除 CSid 及其关联的属性。
CTokenGroups::DeleteAll CTokenGroups 对象中删除所有 CSid 对象及其关联的属性。
CTokenGroups::GetCount 返回 CTokenGroups 对象中包含的 CSid 对象及其关联属性的数量。
CTokenGroups::GetLength 返回 CTokenGroups 对象的大小。
CTokenGroups::GetPTOKEN_GROUPS 检索指向 TOKEN_GROUPS 结构的指针。
CTokenGroups::GetSidsAndAttributes 检索属于 CTokenGroups 对象的 CSid 对象及属性。
CTokenGroups::LookupSid 检索与 CSid 对象关联的属性。

公共运算符

“属性” 描述
CTokenGroups::operator const TOKEN_GROUPS * CTokenGroups 对象强制转换为指向 TOKEN_GROUPS 结构的指针。
CTokenGroups::operator = 赋值运算符。

备注

访问令牌是描述进程或线程的安全上下文的对象,分配给登录到 Windows 系统的每个用户。

CTokenGroups 类是 TOKEN_GROUPS 结构的包装器,包含访问令牌中有关组安全标识符 (SID) 的信息。

有关 Windows 中访问控制模型的简介,请参阅 Windows SDK 中的访问控制

要求

标头: atlsecurity.h

CTokenGroups::Add

CTokenGroups 对象添加 CSid 或现有 TOKEN_GROUPS 结构。

void Add(const CSid& rSid, DWORD dwAttributes) throw(... );
void Add(const TOKEN_GROUPS& rTokenGroups) throw(...);

参数

rSid
CSid 对象。

dwAttributes
要与 CSid 对象关联的属性。

rTokenGroups
TOKEN_GROUPS 结构。

注解

这些方法向 CTokenGroups 对象添加一个或多个 CSid 对象及其关联属性。

CTokenGroups::CTokenGroups

构造函数。

CTokenGroups() throw();
CTokenGroups(const CTokenGroups& rhs) throw(... );
CTokenGroups(const TOKEN_GROUPS& rhs) throw(...);

参数

rhs
要用来构造 CTokenGroups 对象的 CTokenGroups 对象或 TOKEN_GROUPS 结构。

备注

可以选择使用 TOKEN_GROUPS 结构或以前定义的 CTokenGroups 对象创建 CTokenGroups 对象。

CTokenGroups::~CTokenGroups

析构函数。

virtual ~CTokenGroups() throw();

注解

析构函数释放所有已分配的资源。

CTokenGroups::Delete

CTokenGroups 对象中删除 CSid 及其关联的属性。

bool Delete(const CSid& rSid) throw();

参数

rSid
应删除安全标识符 (SID) 和属性的 CSid 对象。

返回值

如果 CSid 被删除,则返回 true,否则返回 false。

CTokenGroups::DeleteAll

CTokenGroups 对象中删除所有 CSid 对象及其关联的属性。

void DeleteAll() throw();

CTokenGroups::GetCount

返回 CTokenGroups 中包含的 CSid 对象数。

UINT GetCount() const throw();

返回值

返回 CTokenGroups 对象中包含的 CSid 对象及其关联属性的数量。

CTokenGroups::GetLength

返回 CTokenGroup 对象的大小。

UINT GetLength() const throw();

注解

返回 CTokenGroup 对象的总大小(以字节为单位)。

CTokenGroups::GetPTOKEN_GROUPS

检索指向 TOKEN_GROUPS 结构的指针。

const TOKEN_GROUPS* GetPTOKEN_GROUPS() const throw(...);

返回值

检索指向属于 CTokenGroups 访问令牌对象的 TOKEN_GROUPS 结构的指针。

CTokenGroups::GetSidsAndAttributes

检索属于 CTokenGroups 对象的 CSid 对象及(可选)属性。

void GetSidsAndAttributes(
    CSid::CSidArray* pSids,
    CAtlArray<DWORD>* pAttributes = NULL) const throw(...);

参数

pSids
指向 CSid 对象的数组的指针。

pAttributes
指向 DWORD 数组的指针。 如果此参数被省略或为 NULL,则不会检索属性。

备注

此方法将枚举 CTokenGroups 对象中包含的所有 CSid 对象,并将其和属性标志(可选)放入数组对象中。

CTokenGroups::LookupSid

检索与 CSid 对象关联的属性。

bool LookupSid(
    const CSid& rSid,
    DWORD* pdwAttributes = NULL) const throw();

参数

rSid
CSid 对象。

pdwAttributes
指向接受 CSid 对象属性的 DWORD 的指针。 如果省略或为 NULL,则不会检索该属性。

返回值

如果出现 CSid,则返回 true,否则返回 false。

备注

通过将 pdwAttributes 设置为 NULL 这一方法可以确认是否存在 CSid 属性,而无需访问该属性。 请注意,此方法不应用于检查访问权限。 应用程序应改用 CAccessToken::CheckTokenMembership 方法。

CTokenGroups::operator =

赋值运算符。

CTokenGroups& operator= (const TOKEN_GROUPS& rhs) throw(...);
CTokenGroups& operator= (const CTokenGroups& rhs) throw(...);

参数

rhs
要分配给 CTokenGroups 对象的 CTokenGroups 对象或 TOKEN_GROUPS 结构。

返回值

返回更新的 CTokenGroups 对象。

CTokenGroups::operator const TOKEN_GROUPS *

将值强制转换为指向 TOKEN_GROUPS 结构的指针。

operator const TOKEN_GROUPS *() const throw(...);

注解

将值强制转换为指向 TOKEN_GROUPS 结构的指针。

另请参阅

安全示例
CSid 类
类概述
安全全局函数