CTokenGroups Class

This class is a wrapper for the TOKEN_GROUPS structure.

Important

This class and its members cannot be used in applications that execute in the Windows Runtime.

Syntax

class CTokenGroups

Members

Public Constructors

Name Description
CTokenGroups::CTokenGroups The constructor.
CTokenGroups::~CTokenGroups The destructor.

Public Methods

Name Description
CTokenGroups::Add Adds a CSid or existing TOKEN_GROUPS structure to the CTokenGroups object.
CTokenGroups::Delete Deletes a CSid and its associated attributes from the CTokenGroups object.
CTokenGroups::DeleteAll Deletes all CSid objects and their associated attributes from the CTokenGroups object.
CTokenGroups::GetCount Returns the number of CSid objects and associated attributes contained in the CTokenGroups object.
CTokenGroups::GetLength Returns the size of the CTokenGroups object.
CTokenGroups::GetPTOKEN_GROUPS Retrieves a pointer to the TOKEN_GROUPS structure.
CTokenGroups::GetSidsAndAttributes Retrieves the CSid objects and attributes belonging to the CTokenGroups object.
CTokenGroups::LookupSid Retrieves the attributes associated with a CSid object.

Public Operators

Name Description
CTokenGroups::operator const TOKEN_GROUPS * Casts the CTokenGroups object to a pointer to the TOKEN_GROUPS structure.
CTokenGroups::operator = Assignment operator.

Remarks

An access token is an object that describes the security context of a process or thread and is allocated to each user logged onto a Windows system.

The CTokenGroups class is a wrapper for the TOKEN_GROUPS structure, containing information about the group security identifiers (SIDs) in an access token.

For an introduction to the access control model in Windows, see Access Control in the Windows SDK.

Requirements

Header: atlsecurity.h

CTokenGroups::Add

Adds a CSid or existing TOKEN_GROUPS structure to the CTokenGroups object.

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

Parameters

rSid
A CSid object.

dwAttributes
The attributes to associate with the CSid object.

rTokenGroups
A TOKEN_GROUPS structure.

Remarks

These methods add one or more CSid objects and their associated attributes to the CTokenGroups object.

CTokenGroups::CTokenGroups

The constructor.

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

Parameters

rhs
The CTokenGroups object or TOKEN_GROUPS structure with which to construct the CTokenGroups object.

Remarks

The CTokenGroups object can optionally be created using a TOKEN_GROUPS structure or a previously defined CTokenGroups object.

CTokenGroups::~CTokenGroups

The destructor.

virtual ~CTokenGroups() throw();

Remarks

The destructor frees all allocated resources.

CTokenGroups::Delete

Deletes a CSid and its associated attributes from the CTokenGroups object.

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

Parameters

rSid
The CSid object for which the security identifier (SID) and attributes should be removed.

Return Value

Returns true if the CSid is removed, false otherwise.

CTokenGroups::DeleteAll

Deletes all CSid objects and their associated attributes from the CTokenGroups object.

void DeleteAll() throw();

CTokenGroups::GetCount

Returns the number of CSid objects contained in CTokenGroups.

UINT GetCount() const throw();

Return Value

Returns the number of CSid objects and their associated attributes contained in the CTokenGroups object.

CTokenGroups::GetLength

Returns the size of the CTokenGroup object.

UINT GetLength() const throw();

Remarks

Returns the total size of the CTokenGroup object, in bytes.

CTokenGroups::GetPTOKEN_GROUPS

Retrieves a pointer to the TOKEN_GROUPS structure.

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

Return Value

Retrieves a pointer to the TOKEN_GROUPS structure belonging to the CTokenGroups access token object.

CTokenGroups::GetSidsAndAttributes

Retrieves the CSid objects and (optionally) the attributes belonging to the CTokenGroups object.

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

Parameters

pSids
Pointer to an array of CSid objects.

pAttributes
Pointer to an array of DWORDs. If this parameter is omitted or NULL, the attributes are not retrieved.

Remarks

This method will enumerate all of the CSid objects contained in the CTokenGroups object and place them and (optionally) the attribute flags into array objects.

CTokenGroups::LookupSid

Retrieves the attributes associated with a CSid object.

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

Parameters

rSid
The CSid object.

pdwAttributes
Pointer to a DWORD which will accept the CSid object's attribute. If omitted or NULL, the attribute will not be retrieved.

Return Value

Returns true if the CSid is found, false otherwise.

Remarks

Setting pdwAttributes to NULL provides a way of confirming the existence of the CSid without accessing the attribute. Note that this method should not be used to check access rights. Applications should instead use the CAccessToken::CheckTokenMembership method.

CTokenGroups::operator =

Assignment operator.

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

Parameters

rhs
The CTokenGroups object or TOKEN_GROUPS structure to assign to the CTokenGroups object.

Return Value

Returns the updated CTokenGroups object.

CTokenGroups::operator const TOKEN_GROUPS *

Casts a value to a pointer to the TOKEN_GROUPS structure.

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

Remarks

Casts a value to a pointer to the TOKEN_GROUPS structure.

See also

Security Sample
CSid Class
Class Overview
Security Global Functions