Partager via


CAccessToken, classe

Cette classe est un wrapper pour un jeton d’accès.

Important

Cette classe et ses membres ne peuvent pas être utilisés dans les applications qui s’exécutent dans Windows Runtime.

Syntaxe

class CAccessToken

Membres

Constructeurs publics

Nom Description
CAccessToken ::~CAccessToken Destructeur.

Méthodes publiques

Nom Description
CAccessToken ::Attach Appelez cette méthode pour prendre possession du handle de jeton d’accès donné.
CAccessToken ::CheckTokenMembership Appelez cette méthode pour déterminer si un SID spécifié est activé dans l’objet CAccessToken .
CAccessToken ::CreateImpersonationToken Appelez cette méthode pour créer un jeton d’accès d’emprunt d’identité.
CAccessToken ::CreatePrimaryToken Appelez cette méthode pour créer un jeton principal.
CAccessToken ::CreateProcessAsUser Appelez cette méthode pour créer un processus en cours d’exécution dans le contexte de sécurité de l’utilisateur représenté par l’objet CAccessToken .
CAccessToken ::CreateRestrictedToken Appelez cette méthode pour créer un objet restreint et nouveau CAccessToken .
CAccessToken ::D etach Appelez cette méthode pour révoquer la propriété du jeton d’accès.
CAccessToken ::D isablePrivilege Appelez cette méthode pour désactiver un privilège dans l’objet CAccessToken .
CAccessToken ::D isablePrivileges Appelez cette méthode pour désactiver un ou plusieurs privilèges dans l’objet CAccessToken .
CAccessToken ::EnablePrivilege Appelez cette méthode pour activer un privilège dans l’objet CAccessToken .
CAccessToken ::EnablePrivileges Appelez cette méthode pour activer un ou plusieurs privilèges dans l’objet CAccessToken .
CAccessToken ::GetDefaultDacl Appelez cette méthode pour retourner la liste DACL par défaut de l’objet CAccessToken .
CAccessToken ::GetEffectiveToken Appelez cette méthode pour obtenir l’objet CAccessToken égal au jeton d’accès en vigueur pour le thread actuel.
CAccessToken ::GetGroups Appelez cette méthode pour renvoyer les groupes de jetons de l’objet CAccessToken .
CAccessToken ::GetHandle Appelez cette méthode pour récupérer un handle au jeton d’accès.
CAccessToken ::GetImpersonationLevel Appelez cette méthode pour obtenir le niveau d’emprunt d’identité à partir du jeton d’accès.
CAccessToken ::GetLogonSessionId Appelez cette méthode pour obtenir l’ID de session d’ouverture de session associé à l’objet CAccessToken .
CAccessToken ::GetLogonSid Appelez cette méthode pour obtenir le SID Logon associé à l’objet CAccessToken .
CAccessToken ::GetOwner Appelez cette méthode pour obtenir le propriétaire associé à l’objet CAccessToken .
CAccessToken ::GetPrimaryGroup Appelez cette méthode pour obtenir le groupe principal associé à l’objet CAccessToken .
CAccessToken ::GetPrivileges Appelez cette méthode pour obtenir les privilèges associés à l’objet CAccessToken .
CAccessToken ::GetProcessToken Appelez cette méthode pour initialiser le CAccessToken jeton d’accès à partir du processus donné.
CAccessToken ::GetProfile Appelez cette méthode pour obtenir le handle pointant vers le profil utilisateur associé à l’objet CAccessToken .
CAccessToken ::GetSource Appelez cette méthode pour obtenir la source de l’objet CAccessToken .
CAccessToken ::GetStatistics Appelez cette méthode pour obtenir des informations associées à l’objet CAccessToken .
CAccessToken ::GetTerminalServicesSessionId Appelez cette méthode pour obtenir l’ID de session des services terminal associés à l’objet CAccessToken .
CAccessToken ::GetThreadToken Appelez cette méthode pour initialiser le CAccessToken jeton à partir du thread donné.
CAccessToken ::GetTokenId Appelez cette méthode pour obtenir l’ID de jeton associé à l’objet CAccessToken .
CAccessToken ::GetType Appelez cette méthode pour obtenir le type de jeton de l’objet CAccessToken .
CAccessToken ::GetUser Appelez cette méthode pour identifier l’utilisateur associé à l’objet CAccessToken .
CAccessToken ::HKeyCurrentUser Appelez cette méthode pour obtenir le handle pointant vers le profil utilisateur associé à l’objet CAccessToken .
CAccessToken ::Emprunt d’identité Appelez cette méthode pour attribuer un emprunt d’identité CAccessToken à un thread.
CAccessToken ::ImpersonateLoggedOnUser Appelez cette méthode pour autoriser le thread appelant à emprunter l’identité du contexte de sécurité d’un utilisateur connecté.
CAccessToken ::IsTokenRestricted Appelez cette méthode pour tester si l’objet CAccessToken contient une liste de SID restreints.
CAccessToken ::LoadUserProfile Appelez cette méthode pour charger le profil utilisateur associé à l’objet CAccessToken .
CAccessToken ::LogonUser Appelez cette méthode pour créer une session d’ouverture de session pour l’utilisateur associé aux informations d’identification données.
CAccessToken ::OpenCOMClientToken Appelez cette méthode à partir d’un serveur COM qui gère un appel d’un client pour initialiser le CAccessToken jeton d’accès à partir du client COM.
CAccessToken ::OpenNamedPipeClientToken Appelez cette méthode à partir d’un serveur qui prend des demandes sur un canal nommé pour initialiser le CAccessToken jeton d’accès à partir du client.
CAccessToken ::OpenRPCClientToken Appelez cette méthode à partir d’un serveur qui gère un appel à partir d’un client RPC pour initialiser le CAccessToken jeton d’accès à partir du client.
CAccessToken ::OpenThreadToken Appelez cette méthode pour définir le niveau d’emprunt d’identité, puis initialiser le CAccessToken jeton à partir du thread donné.
CAccessToken ::P rivilegeCheck Appelez cette méthode pour déterminer si un ensemble de privilèges spécifié est activé dans l’objet CAccessToken .
CAccessToken ::Revert Appelez cette méthode pour arrêter un thread qui utilise un jeton d’emprunt d’identité.
CAccessToken ::SetDefaultDacl Appelez cette méthode pour définir la liste DACL par défaut de l’objet CAccessToken .
CAccessToken ::SetOwner Appelez cette méthode pour définir le propriétaire de l’objet CAccessToken .
CAccessToken ::SetPrimaryGroup Appelez cette méthode pour définir le groupe principal de l’objet CAccessToken .

Notes

Un jeton d’accès est un objet qui décrit le contexte de sécurité d’un processus ou d’un thread et qui est alloué à chaque utilisateur connecté à un système Windows.

Pour une présentation du modèle de contrôle d’accès dans Windows, consultez Contrôle d’accès dans le Kit de développement logiciel (SDK) Windows.

Spécifications

En-tête : atlsecurity.h

CAccessToken ::Attach

Appelez cette méthode pour prendre possession du handle de jeton d’accès donné.

void Attach(HANDLE hToken) throw();

Paramètres

hToken
Handle du jeton d’accès.

Notes

Dans les builds de débogage, une erreur d’assertion se produit si l’objet CAccessToken possède déjà la propriété d’un jeton d’accès.

CAccessToken ::~CAccessToken

Destructeur.

virtual ~CAccessToken() throw();

Notes

Libère toutes les ressources allouées.

CAccessToken ::CheckTokenMembership

Appelez cette méthode pour déterminer si un SID spécifié est activé dans l’objet CAccessToken .

bool CheckTokenMembership(
    const CSid& rSid,
    bool* pbIsMember) const throw(...);

Paramètres

rSid
Référence à un objet CSid Class .

pbIsMember
Pointeur vers une variable qui reçoit les résultats de l’case activée.

Valeur de retour

Retourne TRUE en cas de réussite, FALSE en cas d’échec.

Notes

La CheckTokenMembership méthode case activée pour la présence du SID dans les SID de l’utilisateur et des SID de groupe du jeton d’accès. Si le SID est présent et a l’attribut SE_GROUP_ENABLED, pbIsMember a la valeur TRUE ; sinon, il a la valeur FALSE.

Dans les builds de débogage, une erreur d’assertion se produit si pbIsMember n’est pas un pointeur valide.

Remarque

L’objet CAccessToken doit être un jeton d’emprunt d’identité et non un jeton principal.

CAccessToken ::CreateImpersonationToken

Appelez cette méthode pour créer un jeton d’accès d’emprunt d’identité.

bool CreateImpersonationToken(
    CAccessToken* pImp,
    SECURITY_IMPERSONATION_LEVEL sil = SecurityImpersonation) const throw(...);

Paramètres

Pimp
Pointeur vers le nouvel CAccessToken objet.

sil
Spécifie un SECURITY_IMPERSONATION_LEVEL type énuméré qui fournit le niveau d’emprunt d’identité du nouveau jeton.

Valeur de retour

Retourne TRUE en cas de réussite, FALSE en cas d’échec.

Notes

CreateImpersonationToken appelle DuplicateToken pour créer un jeton d’emprunt d’identité.

CAccessToken ::CreatePrimaryToken

Appelez cette méthode pour créer un jeton principal.

bool CreatePrimaryToken(
    CAccessToken* pPri,
    DWORD dwDesiredAccess = MAXIMUM_ALLOWED,
    const CSecurityAttributes* pTokenAttributes = NULL) const throw(...);

Paramètres

pPri
Pointeur vers le nouvel CAccessToken objet.

dwDesiredAccess
Spécifie les droits d’accès demandés pour le nouveau jeton. La valeur par défaut, MAXIMUM_ALLOWED, demande tous les droits d’accès valides pour l’appelant. Pour plus d’informations sur les droits d’accès, consultez Les droits d’accès et les masques d’accès.

pTokenAttributes
Pointeur vers une structure SECURITY_ATTRIBUTES qui spécifie un descripteur de sécurité pour le nouveau jeton et détermine si les processus enfants peuvent hériter du jeton. Si pTokenAttributes a la valeur NULL, le jeton obtient un descripteur de sécurité par défaut et le handle ne peut pas être hérité.

Valeur de retour

Retourne TRUE en cas de réussite, FALSE en cas d’échec.

Notes

CreatePrimaryToken appelle DuplicateTokenEx pour créer un jeton principal.

CAccessToken ::CreateProcessAsUser

Appelez cette méthode pour créer un processus en cours d’exécution dans le contexte de sécurité de l’utilisateur représenté par l’objet CAccessToken .

bool CreateProcessAsUser(
    LPCTSTR pApplicationName,
    LPTSTR pCommandLine,
    LPPROCESS_INFORMATION pProcessInformation,
    LPSTARTUPINFO pStartupInfo,
    DWORD dwCreationFlags = NORMAL_PRIORITY_CLASS,
    bool bLoadProfile = false,
    const CSecurityAttributes* pProcessAttributes = NULL,
    const CSecurityAttributes* pThreadAttributes = NULL,
    bool bInherit = false,
    LPCTSTR pCurrentDirectory = NULL) throw();

Paramètres

pApplicationName
Pointeur vers une chaîne terminée par null qui spécifie le module à exécuter. Ce paramètre peut ne pas être NULL.

pCommandLine
Pointeur vers une chaîne terminée par null qui spécifie la ligne de commande à exécuter.

pProcessInformation
Pointeur vers une structure PROCESS_INFORMATION qui reçoit des informations d’identification sur le nouveau processus.

pStartupInfo
Pointeur vers une structure STARTUPINFO qui spécifie la façon dont la fenêtre principale du nouveau processus doit apparaître.

dwCreationFlags
Spécifie des indicateurs supplémentaires qui contrôlent la classe de priorité et la création du processus. Consultez la fonction Win32 CreateProcessAsUser pour obtenir la liste des indicateurs.

bLoadProfile
Si la valeur est TRUE, le profil de l’utilisateur est chargé avec LoadUserProfile.

pProcessAttributes
Pointeur vers une structure SECURITY_ATTRIBUTES qui spécifie un descripteur de sécurité pour le nouveau processus et détermine si les processus enfants peuvent hériter du handle retourné. Si pProcessAttributes a la valeur NULL, le processus obtient un descripteur de sécurité par défaut et le handle ne peut pas être hérité.

pThreadAttributes
Pointeur vers une structure SECURITY_ATTRIBUTES qui spécifie un descripteur de sécurité pour le nouveau thread et détermine si les processus enfants peuvent hériter du handle retourné. Si pThreadAttributes a la valeur NULL, le thread obtient un descripteur de sécurité par défaut et le handle ne peut pas être hérité.

bInherit
Indique si le nouveau processus hérite des handles du processus appelant. Si la valeur est TRUE, chaque handle ouvert hérité dans le processus appelant est hérité par le nouveau processus. Les handles hérités ont la même valeur et les mêmes privilèges d’accès que les handles d’origine.

pCurrentDirectory
Pointeur vers une chaîne terminée par null qui spécifie le lecteur actuel et le répertoire du nouveau processus. La chaîne doit être un chemin d’accès complet qui inclut une lettre de lecteur. Si ce paramètre est NULL, le nouveau processus a le même lecteur et le même répertoire actifs que le processus appelant.

Valeur de retour

Retourne TRUE en cas de réussite, FALSE en cas d’échec.

Notes

CreateProcessAsUser utilise la CreateProcessAsUser fonction Win32 pour créer un processus qui s’exécute dans le contexte de sécurité de l’utilisateur représenté par l’objet CAccessToken . Consultez la description de la fonction CreateProcessAsUser pour une discussion complète des paramètres requis.

Pour que cette méthode réussisse, l’objet CAccessToken doit contenir AssignPrimaryToken (sauf s’il s’agit d’un jeton restreint) et des privilèges IncreaseQuota.

CAccessToken ::CreateRestrictedToken

Appelez cette méthode pour créer un objet restreint et nouveau CAccessToken .

bool CreateRestrictedToken(
    CAccessToken* pRestrictedToken,
    const CTokenGroups& SidsToDisable,
    const CTokenGroups& SidsToRestrict,
    const CTokenPrivileges& PrivilegesToDelete = CTokenPrivileges()) const throw(...);

Paramètres

pRestrictedToken
Nouvel objet restreint CAccessToken .

SidsToDisable
Objet CTokenGroups qui spécifie les SID de refus uniquement.

SidsToRestrict
Objet CTokenGroups qui spécifie les SID de restriction.

PrivilegesToDelete
Objet CTokenPrivileges qui spécifie les privilèges à supprimer dans le jeton restreint. La valeur par défaut crée un objet vide.

Valeur de retour

Retourne TRUE en cas de réussite, FALSE en cas d’échec.

Notes

CreateRestrictedToken utilise la fonction CreateRestrictedToken Win32 pour créer un CAccessToken objet, avec des restrictions.

Important

Lors de l’utilisation CreateRestrictedToken, vérifiez que le jeton existant est valide (et non entré par l’utilisateur) et SidsToDisable et PrivilegesToDelete sont tous les deux valides (et non entrés par l’utilisateur). Si la méthode retourne FALSE, refusez la fonctionnalité.

CAccessToken ::D etach

Appelez cette méthode pour révoquer la propriété du jeton d’accès.

HANDLE Detach() throw();

Valeur de retour

Retourne le handle à l’élément CAccessToken qui a été détaché.

Notes

Cette méthode révoque la CAccessTokenpropriété du jeton d’accès.

CAccessToken ::D isablePrivilege

Appelez cette méthode pour désactiver un privilège dans l’objet CAccessToken .

bool DisablePrivilege(
    LPCTSTR pszPrivilege,
    CTokenPrivileges* pPreviousState = NULL) throw(...);

Paramètres

pszPrivilege
Pointeur vers une chaîne contenant le privilège à désactiver dans l’objet CAccessToken .

pPreviousState
Pointeur vers un CTokenPrivileges objet qui contiendra l’état précédent des privilèges.

Valeur de retour

Retourne TRUE en cas de réussite, FALSE en cas d’échec.

CAccessToken ::D isablePrivileges

Appelez cette méthode pour désactiver un ou plusieurs privilèges dans l’objet CAccessToken .

bool DisablePrivileges(
    const CAtlArray<LPCTSTR>& rPrivileges,
    CTokenPrivileges* pPreviousState = NULL) throw(...);

Paramètres

rPrivileges
Pointeur vers un tableau de chaînes contenant les privilèges à désactiver dans l’objet CAccessToken .

pPreviousState
Pointeur vers un CTokenPrivileges objet qui contiendra l’état précédent des privilèges.

Valeur de retour

Retourne TRUE en cas de réussite, FALSE en cas d’échec.

CAccessToken ::EnablePrivilege

Appelez cette méthode pour activer un privilège dans l’objet CAccessToken .

bool EnablePrivilege(
    LPCTSTR pszPrivilege,
    CTokenPrivileges* pPreviousState = NULL) throw(...);

Paramètres

pszPrivilege
Pointeur vers une chaîne contenant le privilège à activer dans l’objet CAccessToken .

pPreviousState
Pointeur vers un CTokenPrivileges objet qui contiendra l’état précédent des privilèges.

Valeur de retour

Retourne TRUE en cas de réussite, FALSE en cas d’échec.

CAccessToken ::EnablePrivileges

Appelez cette méthode pour activer un ou plusieurs privilèges dans l’objet CAccessToken .

bool EnablePrivileges(
    const CAtlArray<LPCTSTR>& rPrivileges,
    CTokenPrivileges* pPreviousState = NULL) throw(...);

Paramètres

rPrivileges
Pointeur vers un tableau de chaînes contenant les privilèges à activer dans l’objet CAccessToken .

pPreviousState
Pointeur vers un CTokenPrivileges objet qui contiendra l’état précédent des privilèges.

Valeur de retour

Retourne TRUE en cas de réussite, FALSE en cas d’échec.

CAccessToken ::GetDefaultDacl

Appelez cette méthode pour retourner la liste DACL par défaut de l’objet CAccessToken .

bool GetDefaultDacl(CDacl* pDacl) const throw(...);

Paramètres

pDacl
Pointeur vers l’objet CDacl Class qui recevra la liste DACL par défaut de l’objet CAccessToken .

Valeur de retour

Retourne TRUE si la liste DACL par défaut a été récupérée, FALSE sinon.

CAccessToken ::GetEffectiveToken

Appelez cette méthode pour obtenir l’objet CAccessToken égal au jeton d’accès en vigueur pour le thread actuel.

bool GetEffectiveToken(DWORD dwDesiredAccess) throw();

Paramètres

dwDesiredAccess
Spécifie un masque d’accès qui spécifie les types d’accès demandés au jeton d’accès. Ces types d’accès demandés sont comparés à la liste DACL du jeton pour déterminer quels accès sont accordés ou refusés.

Valeur de retour

Retourne TRUE en cas de réussite, FALSE en cas d’échec.

CAccessToken ::GetGroups

Appelez cette méthode pour renvoyer les groupes de jetons de l’objet CAccessToken .

bool GetGroups(CTokenGroups* pGroups) const throw(...);

Paramètres

pGroups
Pointeur vers l’objet CTokenGroups Class qui recevra les informations du groupe.

Valeur de retour

Retourne TRUE en cas de réussite, FALSE en cas d’échec.

CAccessToken ::GetHandle

Appelez cette méthode pour récupérer un handle au jeton d’accès.

HANDLE GetHandle() const throw();

Valeur de retour

Retourne un handle au jeton d’accès de l’objet CAccessToken .

CAccessToken ::GetImpersonationLevel

Appelez cette méthode pour obtenir le niveau d’emprunt d’identité à partir du jeton d’accès.

bool GetImpersonationLevel(
    SECURITY_IMPERSONATION_LEVEL* pImpersonationLevel) const throw(...);

Paramètres

pImpersonationLevel
Pointeur vers un type d’énumération SECURITY_IMPERSONATION_LEVEL qui recevra les informations de niveau d’emprunt d’identité.

Valeur de retour

Retourne TRUE en cas de réussite, FALSE en cas d’échec.

CAccessToken ::GetLogonSessionId

Appelez cette méthode pour obtenir l’ID de session d’ouverture de session associé à l’objet CAccessToken .

bool GetLogonSessionId(LUID* pluid) const throw(...);

Paramètres

pluid
Pointeur vers un LUID qui recevra l’ID de session d’ouverture de session.

Valeur de retour

Retourne TRUE en cas de réussite, FALSE en cas d’échec.

Notes

Dans les builds de débogage, une erreur d’assertion se produit si pluid est une valeur non valide.

CAccessToken ::GetLogonSid

Appelez cette méthode pour obtenir le SID Logon associé à l’objet CAccessToken .

bool GetLogonSid(CSid* pSid) const throw(...);

Paramètres

pSid
Pointeur vers un objet CSid Class .

Valeur de retour

Retourne TRUE en cas de réussite, FALSE en cas d’échec.

Notes

Dans les builds de débogage, une erreur d’assertion se produit si pSid est une valeur non valide.

CAccessToken ::GetOwner

Appelez cette méthode pour obtenir le propriétaire associé à l’objet CAccessToken .

bool GetOwner(CSid* pSid) const throw(...);

Paramètres

pSid
Pointeur vers un objet CSid Class .

Valeur de retour

Retourne TRUE en cas de réussite, FALSE en cas d’échec.

Notes

Le propriétaire est défini par défaut sur tous les objets créés pendant que ce jeton d’accès est en vigueur.

CAccessToken ::GetPrimaryGroup

Appelez cette méthode pour obtenir le groupe principal associé à l’objet CAccessToken .

bool GetPrimaryGroup(CSid* pSid) const throw(...);

Paramètres

pSid
Pointeur vers un objet CSid Class .

Valeur de retour

Retourne TRUE en cas de réussite, FALSE en cas d’échec.

Notes

Le groupe est défini par défaut sur tous les objets créés pendant que ce jeton d’accès est en vigueur.

CAccessToken ::GetPrivileges

Appelez cette méthode pour obtenir les privilèges associés à l’objet CAccessToken .

bool GetPrivileges(CTokenPrivileges* pPrivileges) const throw(...);

Paramètres

pPrivileges
Pointeur vers un objet CTokenPrivileges Class qui recevra les privilèges.

Valeur de retour

Retourne TRUE en cas de réussite, FALSE en cas d’échec.

CAccessToken ::GetProcessToken

Appelez cette méthode pour initialiser le CAccessToken jeton d’accès à partir du processus donné.

bool GetProcessToken(DWORD dwDesiredAccess, HANDLE hProcess = NULL) throw();

Paramètres

dwDesiredAccess
Spécifie un masque d’accès qui spécifie les types d’accès demandés au jeton d’accès. Ces types d’accès demandés sont comparés à la liste DACL du jeton pour déterminer quels accès sont accordés ou refusés.

hProcess
Gérez le processus dont le jeton d’accès est ouvert. Si la valeur par défaut de NULL est utilisée, le processus actuel est utilisé.

Valeur de retour

Retourne TRUE en cas de réussite, FALSE en cas d’échec.

Notes

Appelle la fonction OpenProcessToken Win32.

CAccessToken ::GetProfile

Appelez cette méthode pour obtenir le handle pointant vers le profil utilisateur associé à l’objet CAccessToken .

HANDLE GetProfile() const throw();

Valeur de retour

Retourne un handle pointant vers le profil utilisateur, ou NULL s’il n’existe aucun profil.

CAccessToken ::GetSource

Appelez cette méthode pour obtenir la source de l’objet CAccessToken .

bool GetSource(TOKEN_SOURCE* pSource) const throw(...);

Paramètres

pSource
Pointeur vers une structure TOKEN_SOURCE .

Valeur de retour

Retourne TRUE en cas de réussite, FALSE en cas d’échec.

CAccessToken ::GetStatistics

Appelez cette méthode pour obtenir des informations associées à l’objet CAccessToken .

bool GetStatistics(TOKEN_STATISTICS* pStatistics) const throw(...);

Paramètres

pStatistics
Pointeur vers une structure TOKEN_STATISTICS .

Valeur de retour

Retourne TRUE en cas de réussite, FALSE en cas d’échec.

CAccessToken ::GetTerminalServicesSessionId

Appelez cette méthode pour obtenir l’ID de session des services terminal associés à l’objet CAccessToken .

bool GetTerminalServicesSessionId(DWORD* pdwSessionId) const throw(...);

Paramètres

pdwSessionId
ID de session des services terminal.

Valeur de retour

Retourne TRUE en cas de réussite, FALSE en cas d’échec.

CAccessToken ::GetThreadToken

Appelez cette méthode pour initialiser le CAccessToken jeton à partir du thread donné.

bool GetThreadToken(
    DWORD dwDesiredAccess,
    HANDLE hThread = NULL,
    bool bOpenAsSelf = true) throw();

Paramètres

dwDesiredAccess
Spécifie un masque d’accès qui spécifie les types d’accès demandés au jeton d’accès. Ces types d’accès demandés sont comparés à la liste DACL du jeton pour déterminer quels accès sont accordés ou refusés.

hThread
Gérez le thread dont le jeton d’accès est ouvert.

bOpenAsSelf
Indique si l’accès case activée doit être effectué par rapport au contexte de sécurité du thread appelant la GetThreadToken méthode ou au contexte de sécurité du processus pour le thread appelant.

Si ce paramètre a la valeur FALSE, l’accès case activée est effectué à l’aide du contexte de sécurité du thread appelant. Si le thread emprunte l’identité d’un client, ce contexte de sécurité peut être celui d’un processus client. Si ce paramètre a la valeur TRUE, l’accès case activée est effectué à l’aide du contexte de sécurité du processus pour le thread appelant.

Valeur de retour

Retourne TRUE en cas de réussite, FALSE en cas d’échec.

CAccessToken ::GetTokenId

Appelez cette méthode pour obtenir l’ID de jeton associé à l’objet CAccessToken .

bool GetTokenId(LUID* pluid) const throw(...);

Paramètres

pluid
Pointeur vers un LUID qui recevra l’ID de jeton.

Valeur de retour

Retourne TRUE en cas de réussite, FALSE en cas d’échec.

CAccessToken ::GetType

Appelez cette méthode pour obtenir le type de jeton de l’objet CAccessToken .

bool GetType(TOKEN_TYPE* pType) const throw(...);

Paramètres

pType
Adresse de la variable TOKEN_TYPE qui, en cas de réussite, reçoit le type du jeton.

Valeur de retour

Retourne TRUE en cas de réussite, FALSE en cas d’échec.

Notes

Le type d’énumération TOKEN_TYPE contient des valeurs qui différencient un jeton principal et un jeton d’emprunt d’identité.

CAccessToken ::GetUser

Appelez cette méthode pour identifier l’utilisateur associé à l’objet CAccessToken .

bool GetUser(CSid* pSid) const throw(...);

Paramètres

pSid
Pointeur vers un objet CSid Class .

Valeur de retour

Retourne TRUE en cas de réussite, FALSE en cas d’échec.

CAccessToken ::HKeyCurrentUser

Appelez cette méthode pour obtenir le handle pointant vers le profil utilisateur associé à l’objet CAccessToken .

HKEY HKeyCurrentUser() const throw();

Valeur de retour

Retourne un handle pointant vers le profil utilisateur, ou NULL s’il n’existe aucun profil.

CAccessToken ::Emprunt d’identité

Appelez cette méthode pour attribuer un emprunt d’identité CAccessToken à un thread.

bool Impersonate(HANDLE hThread = NULL) const throw(...);

Paramètres

hThread
Gérez le thread pour affecter le jeton d’emprunt d’identité à. Ce handle doit avoir été ouvert avec TOKEN_IMPERSONATE droits d’accès. Si hThread a la valeur NULL, la méthode entraîne l’arrêt du thread à l’aide d’un jeton d’emprunt d’identité.

Valeur de retour

Retourne TRUE en cas de réussite, FALSE en cas d’échec.

Notes

Dans les builds de débogage, une erreur d’assertion se produit s’il CAccessToken n’a pas de pointeur valide vers un jeton.

La classe CAutoRevertImpersonation peut être utilisée pour rétablir automatiquement les jetons d’accès emprunt d’identité.

CAccessToken ::ImpersonateLoggedOnUser

Appelez cette méthode pour autoriser le thread appelant à emprunter l’identité du contexte de sécurité d’un utilisateur connecté.

bool ImpersonateLoggedOnUser() const throw(...);

Valeur de retour

Retourne TRUE en cas de réussite, FALSE en cas d’échec.

Notes

Important

Si un appel à une fonction d’emprunt d’identité échoue pour une raison quelconque, le client n’est pas emprunt d’identité et la demande du client est effectuée dans le contexte de sécurité du processus à partir duquel l’appel a été effectué. Si le processus s’exécute en tant que compte hautement privilégié ou en tant que membre d’un groupe d’administration, l’utilisateur peut peut-être effectuer des actions qu’il ou elle n’est pas autorisé à exécuter. Par conséquent, la valeur de retour de cette fonction doit toujours être confirmée.

CAccessToken ::IsTokenRestricted

Appelez cette méthode pour tester si l’objet CAccessToken contient une liste de SID restreints.

bool IsTokenRestricted() const throw();

Valeur de retour

Renvoie TRUE si l’objet contient une liste de SID de restriction, FALSE s’il n’y a pas de SID restreint ou si la méthode échoue.

CAccessToken ::LoadUserProfile

Appelez cette méthode pour charger le profil utilisateur associé à l’objet CAccessToken .

bool LoadUserProfile() throw(...);

Valeur de retour

Retourne TRUE en cas de réussite, FALSE en cas d’échec.

Notes

Dans les builds de débogage, une erreur d’assertion se produit si le CAccessToken jeton ne contient pas de jeton valide ou s’il existe déjà un profil utilisateur.

CAccessToken ::LogonUser

Appelez cette méthode pour créer une session d’ouverture de session pour l’utilisateur associé aux informations d’identification données.

bool LogonUser(
    LPCTSTR pszUserName,
    LPCTSTR pszDomain,
    LPCTSTR pszPassword,
    DWORD dwLogonType = LOGON32_LOGON_INTERACTIVE,
    DWORD dwLogonProvider = LOGON32_PROVIDER_DEFAULT) throw();

Paramètres

pszUserName
Pointeur vers une chaîne terminée par null qui spécifie le nom d’utilisateur. Il s’agit du nom du compte d’utilisateur auquel se connecter.

pszDomain
Pointeur vers une chaîne terminée par null qui spécifie le nom du domaine ou du serveur dont la base de données de compte contient le compte pszUserName .

pszPassword
Pointeur vers une chaîne terminée par null qui spécifie le mot de passe en texte clair pour le compte d’utilisateur spécifié par pszUserName.

dwLogonType
Spécifie le type d’opération d’ouverture de session à effectuer. Pour plus d’informations, consultez LogonUser .

dwLogonProvider
Spécifie le fournisseur d’ouverture de session. Pour plus d’informations, consultez LogonUser .

Valeur de retour

Retourne TRUE en cas de réussite, FALSE en cas d’échec.

Notes

Le jeton d’accès résultant de l’ouverture de session est associé au CAccessToken. Pour que cette méthode réussisse, l’objet CAccessToken doit contenir des privilèges SE_TCB_NAME, identifiant le titulaire dans le cadre de la base d’ordinateurs approuvée. Pour plus d’informations sur les privilèges requis, consultez LogonUser .

CAccessToken ::OpenCOMClientToken

Appelez cette méthode à partir d’un serveur COM qui gère un appel d’un client pour initialiser le CAccessToken jeton d’accès à partir du client COM.

bool OpenCOMClientToken(
    DWORD dwDesiredAccess,
    bool bImpersonate = false,
    bool bOpenAsSelf = true) throw(...);

Paramètres

dwDesiredAccess
Spécifie un masque d’accès qui spécifie les types d’accès demandés au jeton d’accès. Ces types d’accès demandés sont comparés à la liste DACL du jeton pour déterminer quels accès sont accordés ou refusés.

bImpersonate
Si la valeur est TRUE, le thread actuel emprunte l’identité du client COM appelant si cet appel se termine correctement. Si la valeur est FALSE, le jeton d’accès est ouvert, mais le thread n’a pas de jeton d’emprunt d’identité une fois cet appel terminé.

bOpenAsSelf
Indique si l’accès case activée doit être effectué par rapport au contexte de sécurité du thread appelant la méthode GetThreadToken ou par rapport au contexte de sécurité du processus pour le thread appelant.

Si ce paramètre a la valeur FALSE, l’accès case activée est effectué à l’aide du contexte de sécurité du thread appelant. Si le thread emprunte l’identité d’un client, ce contexte de sécurité peut être celui d’un processus client. Si ce paramètre a la valeur TRUE, l’accès case activée est effectué à l’aide du contexte de sécurité du processus pour le thread appelant.

Valeur de retour

Retourne TRUE en cas de réussite, FALSE en cas d’échec.

Notes

La classe CAutoRevertImpersonation peut être utilisée pour rétablir automatiquement les jetons d’accès emprunt d’identité créés en définissant l’indicateur bImpersonate sur TRUE.

CAccessToken ::OpenNamedPipeClientToken

Appelez cette méthode à partir d’un serveur qui prend des demandes sur un canal nommé pour initialiser le CAccessToken jeton d’accès à partir du client.

bool OpenNamedPipeClientToken(
    HANDLE hPipe,
    DWORD dwDesiredAccess,
    bool bImpersonate = false,
    bool bOpenAsSelf = true) throw(...);

Paramètres

hPipe
Handle vers un canal nommé.

dwDesiredAccess
Spécifie un masque d’accès qui spécifie les types d’accès demandés au jeton d’accès. Ces types d’accès demandés sont comparés à la liste DACL du jeton pour déterminer quels accès sont accordés ou refusés.

bImpersonate
Si la valeur est TRUE, le thread actuel emprunte l’identité du client de canal appelant si cet appel se termine correctement. Si la valeur est FALSE, le jeton d’accès est ouvert, mais le thread n’a pas de jeton d’emprunt d’identité une fois cet appel terminé.

bOpenAsSelf
Indique si l’accès case activée doit être effectué par rapport au contexte de sécurité du thread appelant la méthode GetThreadToken ou par rapport au contexte de sécurité du processus pour le thread appelant.

Si ce paramètre a la valeur FALSE, l’accès case activée est effectué à l’aide du contexte de sécurité du thread appelant. Si le thread emprunte l’identité d’un client, ce contexte de sécurité peut être celui d’un processus client. Si ce paramètre a la valeur TRUE, l’accès case activée est effectué à l’aide du contexte de sécurité du processus pour le thread appelant.

Valeur de retour

Retourne TRUE en cas de réussite, FALSE en cas d’échec.

Notes

La classe CAutoRevertImpersonation peut être utilisée pour rétablir automatiquement les jetons d’accès emprunt d’identité créés en définissant l’indicateur bImpersonate sur TRUE.

CAccessToken ::OpenRPCClientToken

Appelez cette méthode à partir d’un serveur qui gère un appel à partir d’un client RPC pour initialiser le CAccessToken jeton d’accès à partir du client.

bool OpenRPCClientToken(
    RPC_BINDING_HANDLE BindingHandle,
    DWORD dwDesiredAccess,
    bool bImpersonate = false,
    bool bOpenAsSelf = true) throw(...);

Paramètres

BindingHandle
Handle de liaison sur le serveur qui représente une liaison à un client.

dwDesiredAccess
Spécifie un masque d’accès qui spécifie les types d’accès demandés au jeton d’accès. Ces types d’accès demandés sont comparés à la liste DACL du jeton pour déterminer quels accès sont accordés ou refusés.

bImpersonate
Si la valeur est TRUE, le thread actuel emprunte l’identité du client RPC appelant si cet appel se termine correctement. Si la valeur est FALSE, le jeton d’accès est ouvert, mais le thread n’a pas de jeton d’emprunt d’identité une fois cet appel terminé.

bOpenAsSelf
Indique si l’accès case activée doit être effectué par rapport au contexte de sécurité du thread appelant la méthode GetThreadToken ou par rapport au contexte de sécurité du processus pour le thread appelant.

Si ce paramètre a la valeur FALSE, l’accès case activée est effectué à l’aide du contexte de sécurité du thread appelant. Si le thread emprunte l’identité d’un client, ce contexte de sécurité peut être celui d’un processus client. Si ce paramètre a la valeur TRUE, l’accès case activée est effectué à l’aide du contexte de sécurité du processus pour le thread appelant.

Valeur de retour

Retourne TRUE en cas de réussite, FALSE en cas d’échec.

Notes

La classe CAutoRevertImpersonation peut être utilisée pour rétablir automatiquement les jetons d’accès emprunt d’identité créés en définissant l’indicateur bImpersonate sur TRUE.

CAccessToken ::OpenThreadToken

Appelez cette méthode pour définir le niveau d’emprunt d’identité, puis initialiser le CAccessToken jeton à partir du thread donné.

bool OpenThreadToken(
    DWORD dwDesiredAccess,
    bool bImpersonate = false,
    bool bOpenAsSelf = true,
    SECURITY_IMPERSONATION_LEVEL sil = SecurityImpersonation) throw(...);

Paramètres

dwDesiredAccess
Spécifie un masque d’accès qui spécifie les types d’accès demandés au jeton d’accès. Ces types d’accès demandés sont comparés à la liste DACL du jeton pour déterminer quels accès sont accordés ou refusés.

bImpersonate
Si la valeur est TRUE, le thread est laissé au niveau d’emprunt d’identité demandé une fois cette méthode terminée. Si la valeur est FALSE, le thread revient à son niveau d’emprunt d’identité d’origine.

bOpenAsSelf
Indique si l’accès case activée doit être effectué par rapport au contexte de sécurité du thread appelant la méthode GetThreadToken ou par rapport au contexte de sécurité du processus pour le thread appelant.

Si ce paramètre a la valeur FALSE, l’accès case activée est effectué à l’aide du contexte de sécurité du thread appelant. Si le thread emprunte l’identité d’un client, ce contexte de sécurité peut être celui d’un processus client. Si ce paramètre a la valeur TRUE, l’accès case activée est effectué à l’aide du contexte de sécurité du processus pour le thread appelant.

sil
Spécifie un type énuméré SECURITY_IMPERSONATION_LEVEL qui fournit le niveau d’emprunt d’identité du jeton.

Valeur de retour

Retourne TRUE en cas de réussite, FALSE en cas d’échec.

Notes

OpenThreadToken est similaire à CAccessToken ::GetThreadToken, mais définit le niveau d’emprunt d’identité avant d’initialiser le CAccessToken jeton d’accès du thread.

La classe CAutoRevertImpersonation peut être utilisée pour rétablir automatiquement les jetons d’accès emprunt d’identité créés en définissant l’indicateur bImpersonate sur TRUE.

CAccessToken ::P rivilegeCheck

Appelez cette méthode pour déterminer si un ensemble de privilèges spécifié est activé dans l’objet CAccessToken .

bool PrivilegeCheck(
    PPRIVILEGE_SET RequiredPrivileges,
    bool* pbResult) const throw();

Paramètres

RequiredPrivileges
Pointeur vers une structure PRIVILEGE_SET .

pbResult
Pointeur vers une valeur définie par la méthode pour indiquer si l’un ou l’ensemble des privilèges spécifiés sont activés dans l’objet CAccessToken .

Valeur de retour

Retourne TRUE en cas de réussite, FALSE en cas d’échec.

Notes

Quand PrivilegeCheck elle est retournée, le Attributes membre de chaque structure de LUID_AND_ATTRIBUTES est défini sur SE_PRIVILEGE_USED_FOR_ACCESS si le privilège correspondant est activé. Cette méthode appelle la fonction PrivilegeCheck Win32.

CAccessToken ::Revert

Appelez cette méthode pour empêcher un thread d’utiliser un jeton d’emprunt d’identité.

bool Revert(HANDLE hThread = NULL) const throw();

Paramètres

hThread
Gérez le thread pour revenir à l’emprunt d’identité. Si hThread a la valeur NULL, le thread actuel est supposé.

Valeur de retour

Retourne TRUE en cas de réussite, FALSE en cas d’échec.

Notes

La réversion des jetons d’emprunt d’identité peut être effectuée automatiquement avec la classe CAutoRevertImpersonation.

CAccessToken ::SetDefaultDacl

Appelez cette méthode pour définir la liste DACL par défaut de l’objet CAccessToken .

bool SetDefaultDacl(const CDacl& rDacl) throw(...);

Paramètres

rDacl
Les nouvelles informations de classe CDacl par défaut.

Valeur de retour

Retourne TRUE en cas de réussite, FALSE en cas d’échec.

Notes

La liste DACL par défaut est la liste DACL utilisée par défaut lorsque de nouveaux objets sont créés avec ce jeton d’accès en vigueur.

CAccessToken ::SetOwner

Appelez cette méthode pour définir le propriétaire de l’objet CAccessToken .

bool SetOwner(const CSid& rSid) throw(...);

Paramètres

rSid
Objet de classe CSid contenant les informations du propriétaire.

Valeur de retour

Retourne TRUE en cas de réussite, FALSE en cas d’échec.

Notes

Le propriétaire est le propriétaire par défaut utilisé pour les nouveaux objets créés pendant que ce jeton d’accès est en vigueur.

CAccessToken ::SetPrimaryGroup

Appelez cette méthode pour définir le groupe principal de l’objet CAccessToken .

bool SetPrimaryGroup(const CSid& rSid) throw(...);

Paramètres

rSid
Objet CSid Class contenant les informations du groupe principal.

Valeur de retour

Retourne TRUE en cas de réussite, FALSE en cas d’échec.

Notes

Le groupe principal est le groupe par défaut pour les nouveaux objets créés pendant que ce jeton d’accès est en vigueur.

Voir aussi

Exemple ATLSecurity
Jetons d’accès
Vue d’ensemble de la classe