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 la vérification.
Valeur de retour
Retourne TRUE en cas de réussite, FALSE en cas d’échec.
Notes
La CheckTokenMembership
méthode vérifie 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
maquereau
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 CAccessToken
proprié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 la vérification d’accès doit être effectuée 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, la vérification d’accès est effectuée à 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, la vérification d’accès est effectuée à 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 la vérification d’accès doit être effectuée 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, la vérification d’accès est effectuée à 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, la vérification d’accès est effectuée à 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 la vérification d’accès doit être effectuée 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, la vérification d’accès est effectuée à 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, la vérification d’accès est effectuée à 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 la vérification d’accès doit être effectuée 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, la vérification d’accès est effectuée à 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, la vérification d’accès est effectuée à 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 la vérification d’accès doit être effectuée 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, la vérification d’accès est effectuée à 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, la vérification d’accès est effectuée à 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