CAccessToken-Klasse
Diese Klasse ist ein Wrapper für ein Zugriffstoken.
Wichtig
Diese Klasse und ihre Member können nicht in Anwendungen verwendet werden, die in der Windows-Runtime ausgeführt werden.
Syntax
class CAccessToken
Member
Öffentliche Konstruktoren
Name | Beschreibung |
---|---|
CAccessToken::~CAccessToken | Der Destruktor. |
Öffentliche Methoden
Name | Beschreibung |
---|---|
CAccessToken::Attach | Rufen Sie diese Methode auf, um den Besitz des angegebenen Zugriffstokenhandles zu übernehmen. |
CAccessToken::CheckTokenMembership | Rufen Sie diese Methode auf, um festzustellen, ob eine angegebene SID im CAccessToken Objekt aktiviert ist. |
CAccessToken::CreateImpersonationToken | Rufen Sie diese Methode auf, um ein neues Identitätswechselzugriffstoken zu erstellen. |
CAccessToken::CreatePrimaryToken | Rufen Sie diese Methode auf, um ein neues primäres Token zu erstellen. |
CAccessToken::CreateProcessAsUser | Rufen Sie diese Methode auf, um einen neuen Prozess zu erstellen, der im Sicherheitskontext des benutzers ausgeführt wird, der durch das CAccessToken Objekt dargestellt wird. |
CAccessToken::CreateRestrictedToken | Rufen Sie diese Methode auf, um ein neues, eingeschränktes CAccessToken Objekt zu erstellen. |
CAccessToken::D etach | Rufen Sie diese Methode auf, um den Besitz des Zugriffstokens zu widerrufen. |
CAccessToken::D isablePrivilege | Rufen Sie diese Methode auf, um eine Berechtigung im CAccessToken Objekt zu deaktivieren. |
CAccessToken::D isablePrivileges | Rufen Sie diese Methode auf, um ein oder mehrere Berechtigungen im CAccessToken Objekt zu deaktivieren. |
CAccessToken::EnablePrivilege | Rufen Sie diese Methode auf, um ein Privileg im CAccessToken Objekt zu aktivieren. |
CAccessToken::EnablePrivileges | Rufen Sie diese Methode auf, um ein oder mehrere Berechtigungen im CAccessToken Objekt zu aktivieren. |
CAccessToken::GetDefaultDacl | Rufen Sie diese Methode auf, um die standardmäßige DACL des CAccessToken Objekts zurückzugeben. |
CAccessToken::GetEffectiveToken | Rufen Sie diese Methode auf, um das Objekt abzurufen, das CAccessToken dem Zugriffstoken entspricht, das für den aktuellen Thread wirksam ist. |
CAccessToken::GetGroups | Rufen Sie diese Methode auf, um die Tokengruppen des CAccessToken Objekts zurückzugeben. |
CAccessToken::GetHandle | Rufen Sie diese Methode auf, um ein Handle für das Zugriffstoken abzurufen. |
CAccessToken::GetImpersonationLevel | Rufen Sie diese Methode auf, um die Identitätswechselebene aus dem Zugriffstoken abzurufen. |
CAccessToken::GetLogonSessionId | Rufen Sie diese Methode auf, um die dem Objekt zugeordnete CAccessToken Anmeldesitzungs-ID abzurufen. |
CAccessToken::GetLogonSid | Rufen Sie diese Methode auf, um die dem Objekt zugeordnete CAccessToken Anmelde-SID abzurufen. |
CAccessToken::GetOwner | Rufen Sie diese Methode auf, um den besitzer abzurufen, der dem CAccessToken Objekt zugeordnet ist. |
CAccessToken::GetPrimaryGroup | Rufen Sie diese Methode auf, um die primäre Gruppe abzurufen, die dem CAccessToken Objekt zugeordnet ist. |
CAccessToken::GetPrivileges | Rufen Sie diese Methode auf, um die berechtigungen abzurufen, die dem CAccessToken Objekt zugeordnet sind. |
CAccessToken::GetProcessToken | Rufen Sie diese Methode auf, um CAccessToken mit dem Zugriffstoken aus einem Prozess zu initialisieren. |
CAccessToken::GetProfile | Rufen Sie diese Methode auf, um das Handle abzurufen, das auf das Benutzerprofil verweist, das dem CAccessToken Objekt zugeordnet ist. |
CAccessToken::GetSource | Rufen Sie diese Methode auf, um die Quelle des CAccessToken Objekts abzurufen. |
CAccessToken::GetStatistics | Rufen Sie diese Methode auf, um Informationen abzurufen, die dem CAccessToken Objekt zugeordnet sind. |
CAccessToken::GetTerminalServicesSessionId | Rufen Sie diese Methode auf, um die Sitzungs-ID der Terminaldienste abzurufen, die dem CAccessToken Objekt zugeordnet ist. |
CAccessToken::GetThreadToken | Rufen Sie diese Methode auf, um das CAccessToken Token aus dem angegebenen Thread zu initialisieren. |
CAccessToken::GetTokenId | Rufen Sie diese Methode auf, um die dem Objekt zugeordnete CAccessToken Token-ID abzurufen. |
CAccessToken::GetType | Rufen Sie diese Methode auf, um den Tokentyp des CAccessToken Objekts abzurufen. |
CAccessToken::GetUser | Rufen Sie diese Methode auf, um den benutzer zu identifizieren, der dem CAccessToken Objekt zugeordnet ist. |
CAccessToken::HKeyCurrentUser | Rufen Sie diese Methode auf, um das Handle abzurufen, das auf das Benutzerprofil verweist, das dem CAccessToken Objekt zugeordnet ist. |
CAccessToken::Identitätswechsel | Rufen Sie diese Methode auf, um einem Thread einen Identitätswechsel CAccessToken zuzuweisen. |
CAccessToken::ImpersonateLoggedOnUser | Rufen Sie diese Methode auf, damit der aufrufende Thread den Sicherheitskontext eines angemeldeten Benutzers annehmen kann. |
CAccessToken::IsTokenRestricted | Rufen Sie diese Methode auf, um zu testen, ob das CAccessToken Objekt eine Liste eingeschränkter SIDs enthält. |
CAccessToken::LoadUserProfile | Rufen Sie diese Methode auf, um das dem Objekt zugeordnete CAccessToken Benutzerprofil zu laden. |
CAccessToken::LogonUser | Rufen Sie diese Methode auf, um eine Anmeldesitzung für den Benutzer zu erstellen, der den angegebenen Anmeldeinformationen zugeordnet ist. |
CAccessToken::OpenCOMClientToken | Rufen Sie diese Methode von einem COM-Server auf, der einen Aufruf eines Clients verarbeitet, um das CAccessToken Zugriffstoken vom COM-Client zu initialisieren. |
CAccessToken::OpenNamedPipeClientToken | Rufen Sie diese Methode von einem Server auf, der Anforderungen über eine benannte Pipe übernimmt, um das CAccessToken Zugriffstoken vom Client zu initialisieren. |
CAccessToken::OpenRPCClientToken | Rufen Sie diese Methode von einem Server auf, der einen Aufruf eines RPC-Clients verarbeitet, um das CAccessToken Zugriffstoken vom Client zu initialisieren. |
CAccessToken::OpenThreadToken | Rufen Sie diese Methode auf, um die Identitätswechselebene festzulegen und dann das CAccessToken Token aus dem angegebenen Thread zu initialisieren. |
CAccessToken::P rivilegeCheck | Rufen Sie diese Methode auf, um zu bestimmen, ob eine bestimmte Gruppe von Berechtigungen im CAccessToken Objekt aktiviert ist. |
CAccessToken::Revert | Rufen Sie diese Methode auf, um einen Thread zu beenden, der ein Identitätswechseltoken verwendet. |
CAccessToken::SetDefaultDacl | Rufen Sie diese Methode auf, um die standardmäßige DACL des CAccessToken Objekts festzulegen. |
CAccessToken::SetOwner | Rufen Sie diese Methode auf, um den Besitzer des CAccessToken Objekts festzulegen. |
CAccessToken::SetPrimaryGroup | Rufen Sie diese Methode auf, um die primäre Gruppe des CAccessToken Objekts festzulegen. |
Hinweise
Ein Zugriffstoken ist ein Objekt, das den Sicherheitskontext eines Prozesses oder Threads beschreibt und jedem Benutzer zugewiesen wird, der bei einem Windows-System angemeldet ist.
Eine Einführung in das Zugriffssteuerungsmodell in Windows finden Sie unter Access Control im Windows SDK.
Anforderungen
Kopfzeile: atlsecurity.h
CAccessToken::Attach
Rufen Sie diese Methode auf, um den Besitz des angegebenen Zugriffstokenhandles zu übernehmen.
void Attach(HANDLE hToken) throw();
Parameter
hToken
Ein Handle für das Zugriffstoken.
Hinweise
In Debugbuilds tritt ein Assertionsfehler auf, wenn das CAccessToken
Objekt bereits über den Besitz eines Zugriffstokens verfügt.
CAccessToken::~CAccessToken
Der Destruktor.
virtual ~CAccessToken() throw();
Hinweise
Gibt alle zugeordneten Ressourcen frei.
CAccessToken::CheckTokenMembership
Rufen Sie diese Methode auf, um festzustellen, ob eine angegebene SID im CAccessToken
Objekt aktiviert ist.
bool CheckTokenMembership(
const CSid& rSid,
bool* pbIsMember) const throw(...);
Parameter
rSid
Verweisen auf ein CSid Class-Objekt .
pbIsMember
Zeigen Sie auf eine Variable, die die Ergebnisse der Prüfung empfängt.
Rückgabewert
Gibt WAHR für Erfolg, FALSE bei Fehler zurück.
Hinweise
Die CheckTokenMembership
Methode überprüft das Vorhandensein der SID in den Benutzer- und Gruppen-SIDs des Zugriffstokens. Wenn die SID vorhanden ist und das attribut SE_GROUP_ENABLED hat, wird PbIsMember auf TRUE festgelegt. Andernfalls wird sie auf FALSE festgelegt.
In Debugbuilds tritt ein Assertionsfehler auf, wenn pbIsMember kein gültiger Zeiger ist.
Hinweis
Das CAccessToken
Objekt muss ein Identitätswechseltoken und kein primäres Token sein.
CAccessToken::CreateImpersonationToken
Rufen Sie diese Methode auf, um ein Identitätswechselzugriffstoken zu erstellen.
bool CreateImpersonationToken(
CAccessToken* pImp,
SECURITY_IMPERSONATION_LEVEL sil = SecurityImpersonation) const throw(...);
Parameter
Zuhälter
Zeigen Sie auf das neue CAccessToken
Objekt.
sil
Gibt einen SECURITY_IMPERSONATION_LEVEL aufgezählten Typ an, der die Identitätswechselebene des neuen Tokens bereitstellt.
Rückgabewert
Gibt WAHR für Erfolg, FALSE bei Fehler zurück.
Hinweise
CreateImpersonationToken
ruft DuplicateToken auf, um ein neues Identitätswechseltoken zu erstellen.
CAccessToken::CreatePrimaryToken
Rufen Sie diese Methode auf, um ein neues primäres Token zu erstellen.
bool CreatePrimaryToken(
CAccessToken* pPri,
DWORD dwDesiredAccess = MAXIMUM_ALLOWED,
const CSecurityAttributes* pTokenAttributes = NULL) const throw(...);
Parameter
pPri
Zeigen Sie auf das neue CAccessToken
Objekt.
dwDesiredAccess
Gibt die angeforderten Zugriffsrechte für das neue Token an. Standardmäßig fordert MAXIMUM_ALLOWED alle Für den Anrufer gültigen Zugriffsrechte an. Weitere Informationen zu Zugriffsrechten finden Sie unter Zugriffsberechtigungen und Zugriffsmasken .
pTokenAttributes
Zeiger auf eine SECURITY_ATTRIBUTES-Struktur , die einen Sicherheitsdeskriptor für das neue Token angibt und bestimmt, ob untergeordnete Prozesse das Token erben können. Wenn pTokenAttributes NULL ist, erhält das Token einen Standardsicherheitsdeskriptor, und der Handle kann nicht geerbt werden.
Rückgabewert
Gibt WAHR für Erfolg, FALSE bei Fehler zurück.
Hinweise
CreatePrimaryToken
ruft DuplicateTokenEx auf, um ein neues primäres Token zu erstellen.
CAccessToken::CreateProcessAsUser
Rufen Sie diese Methode auf, um einen neuen Prozess zu erstellen, der im Sicherheitskontext des benutzers ausgeführt wird, der durch das CAccessToken
Objekt dargestellt wird.
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();
Parameter
pApplicationName
Zeigen Sie auf eine mit Null beendete Zeichenfolge, die das auszuführende Modul angibt. Dieser Parameter darf nicht NULL sein.
pCommandLine
Zeiger auf eine mit Null beendete Zeichenfolge, die die auszuführende Befehlszeile angibt.
pProcessInformation
Zeigen Sie auf eine PROCESS_INFORMATION Struktur , die Identifikationsinformationen zum neuen Prozess empfängt.
pStartupInfo
Zeigen Sie auf eine STARTUPINFO-Struktur , die angibt, wie das Hauptfenster für den neuen Prozess angezeigt werden soll.
dwCreationFlags
Gibt zusätzliche Flags an, die die Prioritätsklasse und die Erstellung des Prozesses steuern. Eine Liste der Flags finden Sie in der Win32-Funktion CreateProcessAsUser .
bLoadProfile
Wenn TRUE, wird das Profil des Benutzers mit LoadUserProfile geladen.
pProcessAttributes
Zeiger auf eine SECURITY_ATTRIBUTES-Struktur , die einen Sicherheitsdeskriptor für den neuen Prozess angibt und bestimmt, ob untergeordnete Prozesse den zurückgegebenen Handle erben können. Wenn pProcessAttributes NULL ist, ruft der Prozess einen Standardsicherheitsdeskriptor ab, und der Handle kann nicht geerbt werden.
pThreadAttributes
Zeiger auf eine SECURITY_ATTRIBUTES-Struktur , die einen Sicherheitsdeskriptor für den neuen Thread angibt, und bestimmt, ob untergeordnete Prozesse den zurückgegebenen Handle erben können. Wenn pThreadAttributes NULL ist, erhält der Thread einen Standardsicherheitsdeskriptor, und der Handle kann nicht geerbt werden.
bInherit
Gibt an, ob der neue Prozess Handles vom aufrufenden Prozess erbt. Wenn WAHR, wird jedes vererbbare offene Handle im aufrufenden Prozess vom neuen Prozess geerbt. Geerbte Handles weisen denselben Wert und zugriffsberechtigungen wie die ursprünglichen Handles auf.
pCurrentDirectory
Zeigen Sie auf eine mit Null beendete Zeichenfolge, die das aktuelle Laufwerk und verzeichnis für den neuen Prozess angibt. Die Zeichenfolge muss ein vollständiger Pfad sein, der einen Laufwerkbuchstaben enthält. Wenn dieser Parameter NULL ist, verwendet der neue Prozess dasselbe aktuelle Laufwerk und Verzeichnis wie der aufrufende Prozess.
Rückgabewert
Gibt WAHR für Erfolg, FALSE bei Fehler zurück.
Hinweise
CreateProcessAsUser
verwendet die CreateProcessAsUser
Win32-Funktion, um einen neuen Prozess zu erstellen, der im Sicherheitskontext des durch das CAccessToken
Objekt dargestellten Benutzers ausgeführt wird. Eine vollständige Erläuterung der erforderlichen Parameter finden Sie in der Beschreibung der CreateProcessAsUser-Funktion .
Damit diese Methode erfolgreich ausgeführt werden kann, muss das CAccessToken
Objekt AssignPrimaryToken (es sei denn, es ist ein eingeschränktes Token) und die Rechte "IncreaseQuota" enthalten.
CAccessToken::CreateRestrictedToken
Rufen Sie diese Methode auf, um ein neues, eingeschränktes CAccessToken
Objekt zu erstellen.
bool CreateRestrictedToken(
CAccessToken* pRestrictedToken,
const CTokenGroups& SidsToDisable,
const CTokenGroups& SidsToRestrict,
const CTokenPrivileges& PrivilegesToDelete = CTokenPrivileges()) const throw(...);
Parameter
pRestrictedToken
Das neue, eingeschränkte CAccessToken
Objekt.
SidsToDisable
Ein CTokenGroups
Objekt, das die nur deny-only-SIDs angibt.
SidsToRestrict
Ein CTokenGroups
Objekt, das die einschränkenden SIDs angibt.
PrivilegesToDelete
Ein CTokenPrivileges
Objekt, das die Berechtigungen angibt, die im eingeschränkten Token gelöscht werden sollen. Der Standardwert erstellt ein leeres Objekt.
Rückgabewert
Gibt WAHR für Erfolg, FALSE bei Fehler zurück.
Hinweise
CreateRestrictedToken
verwendet die CreateRestrictedToken Win32-Funktion, um ein neues CAccessToken
Objekt mit Einschränkungen zu erstellen.
Wichtig
Stellen Sie bei Verwendung CreateRestrictedToken
folgendes sicher: Das vorhandene Token ist gültig (und nicht vom Benutzer eingegeben) und SidsToDisable und PrivilegesToDelete sind beide gültig (und nicht vom Benutzer eingegeben). Wenn die Methode FALSE zurückgibt, verweigern Sie die Funktionalität.
CAccessToken::D etach
Rufen Sie diese Methode auf, um den Besitz des Zugriffstokens zu widerrufen.
HANDLE Detach() throw();
Rückgabewert
Gibt den Ziehpunkt zurück, der CAccessToken
getrennt wurde.
Hinweise
Diese Methode widerruft den CAccessToken
Besitz des Zugriffstokens.
CAccessToken::D isablePrivilege
Rufen Sie diese Methode auf, um eine Berechtigung im CAccessToken
Objekt zu deaktivieren.
bool DisablePrivilege(
LPCTSTR pszPrivilege,
CTokenPrivileges* pPreviousState = NULL) throw(...);
Parameter
pszPrivilege
Zeigen Sie auf eine Zeichenfolge, die die Berechtigung zum Deaktivieren im CAccessToken
Objekt enthält.
pPreviousState
Zeigen Sie auf ein CTokenPrivileges
Objekt, das den vorherigen Status der Berechtigungen enthält.
Rückgabewert
Gibt WAHR für Erfolg, FALSE bei Fehler zurück.
CAccessToken::D isablePrivileges
Rufen Sie diese Methode auf, um ein oder mehrere Berechtigungen im CAccessToken
Objekt zu deaktivieren.
bool DisablePrivileges(
const CAtlArray<LPCTSTR>& rPrivileges,
CTokenPrivileges* pPreviousState = NULL) throw(...);
Parameter
rPrivileges
Zeigen Sie auf ein Array von Zeichenfolgen, die die Berechtigungen zum Deaktivieren im CAccessToken
Objekt enthalten.
pPreviousState
Zeigen Sie auf ein CTokenPrivileges
Objekt, das den vorherigen Status der Berechtigungen enthält.
Rückgabewert
Gibt WAHR für Erfolg, FALSE bei Fehler zurück.
CAccessToken::EnablePrivilege
Rufen Sie diese Methode auf, um ein Privileg im CAccessToken
Objekt zu aktivieren.
bool EnablePrivilege(
LPCTSTR pszPrivilege,
CTokenPrivileges* pPreviousState = NULL) throw(...);
Parameter
pszPrivilege
Zeigen Sie auf eine Zeichenfolge, die die Im Objekt zu aktivierenden CAccessToken
Berechtigungen enthält.
pPreviousState
Zeigen Sie auf ein CTokenPrivileges
Objekt, das den vorherigen Status der Berechtigungen enthält.
Rückgabewert
Gibt WAHR für Erfolg, FALSE bei Fehler zurück.
CAccessToken::EnablePrivileges
Rufen Sie diese Methode auf, um ein oder mehrere Berechtigungen im CAccessToken
Objekt zu aktivieren.
bool EnablePrivileges(
const CAtlArray<LPCTSTR>& rPrivileges,
CTokenPrivileges* pPreviousState = NULL) throw(...);
Parameter
rPrivileges
Zeigen Sie auf ein Array von Zeichenfolgen, die die Berechtigungen enthalten, die CAccessToken
im Objekt aktiviert werden sollen.
pPreviousState
Zeigen Sie auf ein CTokenPrivileges
Objekt, das den vorherigen Status der Berechtigungen enthält.
Rückgabewert
Gibt WAHR für Erfolg, FALSE bei Fehler zurück.
CAccessToken::GetDefaultDacl
Rufen Sie diese Methode auf, um die standardmäßige DACL des CAccessToken
Objekts zurückzugeben.
bool GetDefaultDacl(CDacl* pDacl) const throw(...);
Parameter
pDacl
Zeiger auf das CDacl Class-Objekt , das die Standardmäßig-DACL des CAccessToken
Objekts empfängt.
Rückgabewert
Gibt TRUE zurück, wenn die standardmäßige DACL wiederhergestellt wurde, andernfalls FALSE.
CAccessToken::GetEffectiveToken
Rufen Sie diese Methode auf, um das Objekt abzurufen, das CAccessToken
dem Zugriffstoken entspricht, das für den aktuellen Thread wirksam ist.
bool GetEffectiveToken(DWORD dwDesiredAccess) throw();
Parameter
dwDesiredAccess
Gibt eine Zugriffsmaske an, die die angeforderten Zugriffstypen für den Zugriff auf das Zugriffstoken identifiziert. Diese angeforderten Zugriffstypen werden mit der DACL des Tokens verglichen, um zu bestimmen, welche Zugriffe gewährt oder verweigert werden.
Rückgabewert
Gibt WAHR für Erfolg, FALSE bei Fehler zurück.
CAccessToken::GetGroups
Rufen Sie diese Methode auf, um die Tokengruppen des CAccessToken
Objekts zurückzugeben.
bool GetGroups(CTokenGroups* pGroups) const throw(...);
Parameter
pGroups
Zeiger auf das CTokenGroups Class-Objekt , das die Gruppeninformationen empfängt.
Rückgabewert
Gibt WAHR für Erfolg, FALSE bei Fehler zurück.
CAccessToken::GetHandle
Rufen Sie diese Methode auf, um ein Handle für das Zugriffstoken abzurufen.
HANDLE GetHandle() const throw();
Rückgabewert
Gibt ein Handle an das Zugriffstoken des CAccessToken
Objekts zurück.
CAccessToken::GetImpersonationLevel
Rufen Sie diese Methode auf, um die Identitätswechselebene aus dem Zugriffstoken abzurufen.
bool GetImpersonationLevel(
SECURITY_IMPERSONATION_LEVEL* pImpersonationLevel) const throw(...);
Parameter
pImpersonationLevel
Zeigen Sie auf einen SECURITY_IMPERSONATION_LEVEL Enumerationstyp, der informationen zur Identitätswechselebene empfängt.
Rückgabewert
Gibt WAHR für Erfolg, FALSE bei Fehler zurück.
CAccessToken::GetLogonSessionId
Rufen Sie diese Methode auf, um die dem Objekt zugeordnete CAccessToken
Anmeldesitzungs-ID abzurufen.
bool GetLogonSessionId(LUID* pluid) const throw(...);
Parameter
pluid
Zeigen Sie auf eine LUID , die die Anmeldesitzungs-ID empfängt.
Rückgabewert
Gibt WAHR für Erfolg, FALSE bei Fehler zurück.
Hinweise
In Debugbuilds tritt ein Assertionsfehler auf, wenn pluid ein ungültiger Wert ist.
CAccessToken::GetLogonSid
Rufen Sie diese Methode auf, um die dem Objekt zugeordnete CAccessToken
Anmelde-SID abzurufen.
bool GetLogonSid(CSid* pSid) const throw(...);
Parameter
pSid
Zeiger auf ein CSid Class-Objekt .
Rückgabewert
Gibt WAHR für Erfolg, FALSE bei Fehler zurück.
Hinweise
In Debugbuilds tritt ein Assertionsfehler auf, wenn pSid ein ungültiger Wert ist.
CAccessToken::GetOwner
Rufen Sie diese Methode auf, um den besitzer abzurufen, der dem CAccessToken
Objekt zugeordnet ist.
bool GetOwner(CSid* pSid) const throw(...);
Parameter
pSid
Zeiger auf ein CSid Class-Objekt .
Rückgabewert
Gibt WAHR für Erfolg, FALSE bei Fehler zurück.
Hinweise
Der Besitzer wird standardmäßig für alle Objekte festgelegt, die erstellt wurden, während dieses Zugriffstoken wirksam ist.
CAccessToken::GetPrimaryGroup
Rufen Sie diese Methode auf, um die primäre Gruppe abzurufen, die dem CAccessToken
Objekt zugeordnet ist.
bool GetPrimaryGroup(CSid* pSid) const throw(...);
Parameter
pSid
Zeiger auf ein CSid Class-Objekt .
Rückgabewert
Gibt WAHR für Erfolg, FALSE bei Fehler zurück.
Hinweise
Die Gruppe wird standardmäßig für alle Objekte festgelegt, die erstellt wurden, während dieses Zugriffstoken wirksam ist.
CAccessToken::GetPrivileges
Rufen Sie diese Methode auf, um die berechtigungen abzurufen, die dem CAccessToken
Objekt zugeordnet sind.
bool GetPrivileges(CTokenPrivileges* pPrivileges) const throw(...);
Parameter
pPrivileges
Zeiger auf ein CTokenPrivileges Class-Objekt , das die Berechtigungen erhält.
Rückgabewert
Gibt WAHR für Erfolg, FALSE bei Fehler zurück.
CAccessToken::GetProcessToken
Rufen Sie diese Methode auf, um CAccessToken
mit dem Zugriffstoken aus einem Prozess zu initialisieren.
bool GetProcessToken(DWORD dwDesiredAccess, HANDLE hProcess = NULL) throw();
Parameter
dwDesiredAccess
Gibt eine Zugriffsmaske an, die die angeforderten Zugriffstypen für den Zugriff auf das Zugriffstoken identifiziert. Diese angeforderten Zugriffstypen werden mit der DACL des Tokens verglichen, um zu bestimmen, welche Zugriffe gewährt oder verweigert werden.
hProcess
Handle an den Prozess, dessen Zugriffstoken geöffnet ist. Wenn der Standardwert von NULL verwendet wird, wird der aktuelle Prozess verwendet.
Rückgabewert
Gibt WAHR für Erfolg, FALSE bei Fehler zurück.
Hinweise
Ruft die OpenProcessToken Win32-Funktion auf.
CAccessToken::GetProfile
Rufen Sie diese Methode auf, um das Handle abzurufen, das auf das Benutzerprofil verweist, das dem CAccessToken
Objekt zugeordnet ist.
HANDLE GetProfile() const throw();
Rückgabewert
Gibt ein Handle zurück, das auf das Benutzerprofil zeigt, oder NULL, wenn kein Profil vorhanden ist.
CAccessToken::GetSource
Rufen Sie diese Methode auf, um die Quelle des CAccessToken
Objekts abzurufen.
bool GetSource(TOKEN_SOURCE* pSource) const throw(...);
Parameter
pSource
Zeiger auf eine TOKEN_SOURCE Struktur.
Rückgabewert
Gibt WAHR für Erfolg, FALSE bei Fehler zurück.
CAccessToken::GetStatistics
Rufen Sie diese Methode auf, um Informationen abzurufen, die dem CAccessToken
Objekt zugeordnet sind.
bool GetStatistics(TOKEN_STATISTICS* pStatistics) const throw(...);
Parameter
pStatistics
Zeiger auf eine TOKEN_STATISTICS Struktur.
Rückgabewert
Gibt WAHR für Erfolg, FALSE bei Fehler zurück.
CAccessToken::GetTerminalServicesSessionId
Rufen Sie diese Methode auf, um die Sitzungs-ID der Terminaldienste abzurufen, die dem CAccessToken
Objekt zugeordnet ist.
bool GetTerminalServicesSessionId(DWORD* pdwSessionId) const throw(...);
Parameter
pdwSessionId
Die Sitzungs-ID der Terminaldienste.
Rückgabewert
Gibt WAHR für Erfolg, FALSE bei Fehler zurück.
CAccessToken::GetThreadToken
Rufen Sie diese Methode auf, um das CAccessToken
Token aus dem angegebenen Thread zu initialisieren.
bool GetThreadToken(
DWORD dwDesiredAccess,
HANDLE hThread = NULL,
bool bOpenAsSelf = true) throw();
Parameter
dwDesiredAccess
Gibt eine Zugriffsmaske an, die die angeforderten Zugriffstypen für den Zugriff auf das Zugriffstoken identifiziert. Diese angeforderten Zugriffstypen werden mit der DACL des Tokens verglichen, um zu bestimmen, welche Zugriffe gewährt oder verweigert werden.
hThread
Behandeln Sie den Thread, dessen Zugriffstoken geöffnet wird.
bOpenAsSelf
Gibt an, ob die Zugriffsüberprüfung für den Sicherheitskontext des Threads, der die GetThreadToken
Methode aufruft, oder für den Sicherheitskontext des Prozesses für den aufrufenden Thread vorgenommen werden soll.
Wenn dieser Parameter FALSE ist, wird die Zugriffsüberprüfung mithilfe des Sicherheitskontexts für den aufrufenden Thread ausgeführt. Wenn der Thread die Identität eines Clients angibt, kann dieser Sicherheitskontext der eines Clientprozesses sein. Wenn dieser Parameter TRUE ist, wird die Zugriffsüberprüfung mithilfe des Sicherheitskontexts des Prozesses für den aufrufenden Thread vorgenommen.
Rückgabewert
Gibt WAHR für Erfolg, FALSE bei Fehler zurück.
CAccessToken::GetTokenId
Rufen Sie diese Methode auf, um die dem Objekt zugeordnete CAccessToken
Token-ID abzurufen.
bool GetTokenId(LUID* pluid) const throw(...);
Parameter
pluid
Zeiger auf eine LUID , die die Token-ID empfängt.
Rückgabewert
Gibt WAHR für Erfolg, FALSE bei Fehler zurück.
CAccessToken::GetType
Rufen Sie diese Methode auf, um den Tokentyp des CAccessToken
Objekts abzurufen.
bool GetType(TOKEN_TYPE* pType) const throw(...);
Parameter
pType
Adresse der TOKEN_TYPE Variablen, die bei Erfolg den Typ des Tokens empfängt.
Rückgabewert
Gibt WAHR für Erfolg, FALSE bei Fehler zurück.
Hinweise
Der TOKEN_TYPE Enumerationstyp enthält Werte, die zwischen einem primären Token und einem Identitätswechseltoken unterscheiden.
CAccessToken::GetUser
Rufen Sie diese Methode auf, um den benutzer zu identifizieren, der dem CAccessToken
Objekt zugeordnet ist.
bool GetUser(CSid* pSid) const throw(...);
Parameter
pSid
Zeiger auf ein CSid Class-Objekt .
Rückgabewert
Gibt WAHR für Erfolg, FALSE bei Fehler zurück.
CAccessToken::HKeyCurrentUser
Rufen Sie diese Methode auf, um das Handle abzurufen, das auf das Benutzerprofil verweist, das dem CAccessToken
Objekt zugeordnet ist.
HKEY HKeyCurrentUser() const throw();
Rückgabewert
Gibt ein Handle zurück, das auf das Benutzerprofil zeigt, oder NULL, wenn kein Profil vorhanden ist.
CAccessToken::Identitätswechsel
Rufen Sie diese Methode auf, um einem Thread einen Identitätswechsel CAccessToken
zuzuweisen.
bool Impersonate(HANDLE hThread = NULL) const throw(...);
Parameter
hThread
Behandeln Sie den Thread, um das Identitätswechseltoken zuzuweisen. Dieses Handle muss mit TOKEN_IMPERSONATE Zugriffsrechten geöffnet worden sein. Wenn hThread NULL ist, bewirkt die Methode, dass der Thread die Verwendung eines Identitätswechseltokens beendet.
Rückgabewert
Gibt WAHR für Erfolg, FALSE bei Fehler zurück.
Hinweise
In Debugbuilds tritt ein Assertionsfehler auf, wenn CAccessToken
kein gültiger Zeiger auf ein Token vorhanden ist.
Die CAutoRevertImpersonation-Klasse kann verwendet werden, um identitätswechselnde Zugriffstoken automatisch wiederhergestellt zu werden.
CAccessToken::ImpersonateLoggedOnUser
Rufen Sie diese Methode auf, damit der aufrufende Thread den Sicherheitskontext eines angemeldeten Benutzers annehmen kann.
bool ImpersonateLoggedOnUser() const throw(...);
Rückgabewert
Gibt WAHR für Erfolg, FALSE bei Fehler zurück.
Hinweise
Wichtig
Wenn ein Aufruf einer Identitätswechselfunktion aus irgendeinem Grund fehlschlägt, wird der Client nicht als Identitätswechsel bezeichnet, und die Clientanforderung wird im Sicherheitskontext des Prozesses ausgeführt, aus dem der Aufruf ausgeführt wurde. Wenn der Prozess als Konto mit hohem Privilegierten oder als Mitglied einer administrativen Gruppe ausgeführt wird, kann der Benutzer möglicherweise Aktionen ausführen, die er andernfalls nicht zulassen würde. Daher sollte der Rückgabewert für diese Funktion immer bestätigt werden.
CAccessToken::IsTokenRestricted
Rufen Sie diese Methode auf, um zu testen, ob das CAccessToken
Objekt eine Liste eingeschränkter SIDs enthält.
bool IsTokenRestricted() const throw();
Rückgabewert
Gibt TRUE zurück, wenn das Objekt eine Liste der einschränkenden SIDs enthält, FALSE, wenn keine einschränkenden SIDs vorhanden sind oder wenn die Methode fehlschlägt.
CAccessToken::LoadUserProfile
Rufen Sie diese Methode auf, um das dem Objekt zugeordnete CAccessToken
Benutzerprofil zu laden.
bool LoadUserProfile() throw(...);
Rückgabewert
Gibt WAHR für Erfolg, FALSE bei Fehler zurück.
Hinweise
Bei Debugbuilds tritt ein Assertionsfehler auf, wenn das CAccessToken
Token kein gültiges Token enthält oder ein Benutzerprofil bereits vorhanden ist.
CAccessToken::LogonUser
Rufen Sie diese Methode auf, um eine Anmeldesitzung für den Benutzer zu erstellen, der den angegebenen Anmeldeinformationen zugeordnet ist.
bool LogonUser(
LPCTSTR pszUserName,
LPCTSTR pszDomain,
LPCTSTR pszPassword,
DWORD dwLogonType = LOGON32_LOGON_INTERACTIVE,
DWORD dwLogonProvider = LOGON32_PROVIDER_DEFAULT) throw();
Parameter
pszUserName
Zeigen Sie auf eine mit Null beendete Zeichenfolge, die den Benutzernamen angibt. Dies ist der Name des Benutzerkontos, bei dem sich anmelden soll.
pszDomain
Zeigen Sie auf eine mit Null beendete Zeichenfolge, die den Namen der Domäne oder des Servers angibt, deren Kontodatenbank das pszUserName-Konto enthält.
pszPassword
Zeigen Sie auf eine mit Null beendete Zeichenfolge, die das Klartextkennwort für das von pszUserName angegebene Benutzerkonto angibt.
dwLogonType
Gibt den Typ des auszuführenden Anmeldevorgangs an. Weitere Informationen finden Sie unter "LogonUser ".
dwLogonProvider
Gibt den Anmeldeanbieter an. Weitere Informationen finden Sie unter "LogonUser ".
Rückgabewert
Gibt WAHR für Erfolg, FALSE bei Fehler zurück.
Hinweise
Das Zugriffstoken, das sich aus der Anmeldung ergibt, wird dem CAccessToken
zugeordnet. Damit diese Methode erfolgreich ist, muss das CAccessToken
Objekt SE_TCB_NAME Berechtigungen enthalten und den Halter als Teil der vertrauenswürdigen Computerbasis identifizieren. Weitere Informationen zu den erforderlichen Berechtigungen finden Sie unter "LogonUser ".
CAccessToken::OpenCOMClientToken
Rufen Sie diese Methode von einem COM-Server auf, der einen Aufruf eines Clients verarbeitet, um das CAccessToken
Zugriffstoken vom COM-Client zu initialisieren.
bool OpenCOMClientToken(
DWORD dwDesiredAccess,
bool bImpersonate = false,
bool bOpenAsSelf = true) throw(...);
Parameter
dwDesiredAccess
Gibt eine Zugriffsmaske an, die die angeforderten Zugriffstypen für den Zugriff auf das Zugriffstoken identifiziert. Diese angeforderten Zugriffstypen werden mit der DACL des Tokens verglichen, um zu bestimmen, welche Zugriffe gewährt oder verweigert werden.
bImpersonate
Wenn TRUE, wird der aktuelle Thread die Identität des aufrufenden COM-Clients annehmen, wenn dieser Aufruf erfolgreich abgeschlossen ist. Wenn FALSE, wird das Zugriffstoken geöffnet, der Thread verfügt jedoch nicht über ein Identitätswechseltoken, wenn dieser Aufruf abgeschlossen ist.
bOpenAsSelf
Gibt an, ob die Zugriffsüberprüfung für den Sicherheitskontext des Threads ausgeführt werden soll, der die GetThreadToken-Methode aufruft, oder anhand des Sicherheitskontexts des Prozesses für den aufrufenden Thread.
Wenn dieser Parameter FALSE ist, wird die Zugriffsüberprüfung mithilfe des Sicherheitskontexts für den aufrufenden Thread ausgeführt. Wenn der Thread die Identität eines Clients angibt, kann dieser Sicherheitskontext der eines Clientprozesses sein. Wenn dieser Parameter TRUE ist, wird die Zugriffsüberprüfung mithilfe des Sicherheitskontexts des Prozesses für den aufrufenden Thread vorgenommen.
Rückgabewert
Gibt WAHR für Erfolg, FALSE bei Fehler zurück.
Hinweise
Die CAutoRevertImpersonation-Klasse kann verwendet werden, um automatisch identitätswechselnde Zugriffstoken zurückzugeben, die durch Festlegen des bImpersonate-Flags auf TRUE erstellt wurden.
CAccessToken::OpenNamedPipeClientToken
Rufen Sie diese Methode von einem Server auf, der Anforderungen über eine benannte Pipe übernimmt, um das CAccessToken
Zugriffstoken vom Client zu initialisieren.
bool OpenNamedPipeClientToken(
HANDLE hPipe,
DWORD dwDesiredAccess,
bool bImpersonate = false,
bool bOpenAsSelf = true) throw(...);
Parameter
hPipe
Handle zu einer benannten Pipe.
dwDesiredAccess
Gibt eine Zugriffsmaske an, die die angeforderten Zugriffstypen für den Zugriff auf das Zugriffstoken identifiziert. Diese angeforderten Zugriffstypen werden mit der DACL des Tokens verglichen, um zu bestimmen, welche Zugriffe gewährt oder verweigert werden.
bImpersonate
Wenn TRUE, wird der aktuelle Thread den Anrufpipelineclient annehmen, wenn dieser Aufruf erfolgreich abgeschlossen wurde. Wenn FALSE, wird das Zugriffstoken geöffnet, der Thread verfügt jedoch nicht über ein Identitätswechseltoken, wenn dieser Aufruf abgeschlossen ist.
bOpenAsSelf
Gibt an, ob die Zugriffsüberprüfung für den Sicherheitskontext des Threads ausgeführt werden soll, der die GetThreadToken-Methode aufruft, oder anhand des Sicherheitskontexts des Prozesses für den aufrufenden Thread.
Wenn dieser Parameter FALSE ist, wird die Zugriffsüberprüfung mithilfe des Sicherheitskontexts für den aufrufenden Thread ausgeführt. Wenn der Thread die Identität eines Clients angibt, kann dieser Sicherheitskontext der eines Clientprozesses sein. Wenn dieser Parameter TRUE ist, wird die Zugriffsüberprüfung mithilfe des Sicherheitskontexts des Prozesses für den aufrufenden Thread vorgenommen.
Rückgabewert
Gibt WAHR für Erfolg, FALSE bei Fehler zurück.
Hinweise
Die CAutoRevertImpersonation-Klasse kann verwendet werden, um automatisch identitätswechselnde Zugriffstoken zurückzugeben, die durch Festlegen des bImpersonate-Flags auf TRUE erstellt wurden.
CAccessToken::OpenRPCClientToken
Rufen Sie diese Methode von einem Server auf, der einen Aufruf eines RPC-Clients verarbeitet, um das CAccessToken
Zugriffstoken vom Client zu initialisieren.
bool OpenRPCClientToken(
RPC_BINDING_HANDLE BindingHandle,
DWORD dwDesiredAccess,
bool bImpersonate = false,
bool bOpenAsSelf = true) throw(...);
Parameter
BindingHandle
Bindungshandle auf dem Server, das eine Bindung an einen Client darstellt.
dwDesiredAccess
Gibt eine Zugriffsmaske an, die die angeforderten Zugriffstypen für den Zugriff auf das Zugriffstoken identifiziert. Diese angeforderten Zugriffstypen werden mit der DACL des Tokens verglichen, um zu bestimmen, welche Zugriffe gewährt oder verweigert werden.
bImpersonate
Wenn TRUE, wird der aktuelle Thread die Identität des aufrufenden RPC-Clients annehmen, wenn dieser Aufruf erfolgreich abgeschlossen ist. Wenn FALSE, wird das Zugriffstoken geöffnet, der Thread verfügt jedoch nicht über ein Identitätswechseltoken, wenn dieser Aufruf abgeschlossen ist.
bOpenAsSelf
Gibt an, ob die Zugriffsüberprüfung für den Sicherheitskontext des Threads ausgeführt werden soll, der die GetThreadToken-Methode aufruft, oder anhand des Sicherheitskontexts des Prozesses für den aufrufenden Thread.
Wenn dieser Parameter FALSE ist, wird die Zugriffsüberprüfung mithilfe des Sicherheitskontexts für den aufrufenden Thread ausgeführt. Wenn der Thread die Identität eines Clients angibt, kann dieser Sicherheitskontext der eines Clientprozesses sein. Wenn dieser Parameter TRUE ist, wird die Zugriffsüberprüfung mithilfe des Sicherheitskontexts des Prozesses für den aufrufenden Thread vorgenommen.
Rückgabewert
Gibt WAHR für Erfolg, FALSE bei Fehler zurück.
Hinweise
Die CAutoRevertImpersonation-Klasse kann verwendet werden, um automatisch identitätswechselnde Zugriffstoken zurückzugeben, die durch Festlegen des bImpersonate-Flags auf TRUE erstellt wurden.
CAccessToken::OpenThreadToken
Rufen Sie diese Methode auf, um die Identitätswechselebene festzulegen und dann das CAccessToken
Token aus dem angegebenen Thread zu initialisieren.
bool OpenThreadToken(
DWORD dwDesiredAccess,
bool bImpersonate = false,
bool bOpenAsSelf = true,
SECURITY_IMPERSONATION_LEVEL sil = SecurityImpersonation) throw(...);
Parameter
dwDesiredAccess
Gibt eine Zugriffsmaske an, die die angeforderten Zugriffstypen für den Zugriff auf das Zugriffstoken identifiziert. Diese angeforderten Zugriffstypen werden mit der DACL des Tokens verglichen, um zu bestimmen, welche Zugriffe gewährt oder verweigert werden.
bImpersonate
Wenn TRUE, wird der Thread nach Abschluss dieser Methode auf der angeforderten Identitätswechselebene verbleiben. Wenn FALSE, wird der Thread auf die ursprüngliche Identitätswechselebene zurückgesetzt.
bOpenAsSelf
Gibt an, ob die Zugriffsüberprüfung für den Sicherheitskontext des Threads ausgeführt werden soll, der die GetThreadToken-Methode aufruft, oder anhand des Sicherheitskontexts des Prozesses für den aufrufenden Thread.
Wenn dieser Parameter FALSE ist, wird die Zugriffsüberprüfung mithilfe des Sicherheitskontexts für den aufrufenden Thread ausgeführt. Wenn der Thread die Identität eines Clients angibt, kann dieser Sicherheitskontext der eines Clientprozesses sein. Wenn dieser Parameter TRUE ist, wird die Zugriffsüberprüfung mithilfe des Sicherheitskontexts des Prozesses für den aufrufenden Thread vorgenommen.
sil
Gibt einen SECURITY_IMPERSONATION_LEVEL aufgezählten Typ an, der die Identitätswechselebene des Tokens bereitstellt.
Rückgabewert
Gibt WAHR für Erfolg, FALSE bei Fehler zurück.
Hinweise
OpenThreadToken
ähnelt CAccessToken::GetThreadToken, legt jedoch die Identitätswechselebene fest, bevor das CAccessToken
Zugriffstoken des Threads initialisiert wird.
Die CAutoRevertImpersonation-Klasse kann verwendet werden, um automatisch identitätswechselnde Zugriffstoken zurückzugeben, die durch Festlegen des bImpersonate-Flags auf TRUE erstellt wurden.
CAccessToken::P rivilegeCheck
Rufen Sie diese Methode auf, um zu bestimmen, ob eine bestimmte Gruppe von Berechtigungen im CAccessToken
Objekt aktiviert ist.
bool PrivilegeCheck(
PPRIVILEGE_SET RequiredPrivileges,
bool* pbResult) const throw();
Parameter
RequiredPrivileges
Zeiger auf eine PRIVILEGE_SET Struktur.
pbResult
Zeigen Sie auf einen Wert, den die Methode festlegt, um anzugeben, ob eine oder alle angegebenen Berechtigungen im CAccessToken
Objekt aktiviert sind.
Rückgabewert
Gibt WAHR für Erfolg, FALSE bei Fehler zurück.
Hinweise
Bei PrivilegeCheck
Rückgabe wird das Attributes
Element jeder LUID_AND_ATTRIBUTES Struktur auf SE_PRIVILEGE_USED_FOR_ACCESS festgelegt, wenn die entsprechenden Berechtigungen aktiviert sind. Diese Methode ruft die PrivilegeCheck Win32-Funktion auf.
CAccessToken::Revert
Rufen Sie diese Methode auf, um zu verhindern, dass ein Thread ein Identitätswechseltoken verwendet.
bool Revert(HANDLE hThread = NULL) const throw();
Parameter
hThread
Behandeln Sie den Thread, um den Identitätswechsel rückgängig zu machen. Wenn hThread NULL ist, wird der aktuelle Thread angenommen.
Rückgabewert
Gibt WAHR für Erfolg, FALSE bei Fehler zurück.
Hinweise
Die Umversion von Identitätswechseltoken kann automatisch mit der CAutoRevertImpersonation-Klasse ausgeführt werden.
CAccessToken::SetDefaultDacl
Rufen Sie diese Methode auf, um die standardmäßige DACL des CAccessToken
Objekts festzulegen.
bool SetDefaultDacl(const CDacl& rDacl) throw(...);
Parameter
rDacl
Die neuen CDacl-Standardklasseninformationen.
Rückgabewert
Gibt WAHR für Erfolg, FALSE bei Fehler zurück.
Hinweise
Die Standardmäßige DACL ist die DACL, die standardmäßig verwendet wird, wenn neue Objekte mit diesem Zugriffstoken erstellt werden.
CAccessToken::SetOwner
Rufen Sie diese Methode auf, um den Besitzer des CAccessToken
Objekts festzulegen.
bool SetOwner(const CSid& rSid) throw(...);
Parameter
rSid
Das CSid Class-Objekt , das die Besitzerinformationen enthält.
Rückgabewert
Gibt WAHR für Erfolg, FALSE bei Fehler zurück.
Hinweise
Der Besitzer ist der Standardbesitzer, der für neue Objekte verwendet wird, die erstellt wurden, während dieses Zugriffstoken wirksam ist.
CAccessToken::SetPrimaryGroup
Rufen Sie diese Methode auf, um die primäre Gruppe des CAccessToken
Objekts festzulegen.
bool SetPrimaryGroup(const CSid& rSid) throw(...);
Parameter
rSid
Das CSid Class-Objekt , das die primären Gruppeninformationen enthält.
Rückgabewert
Gibt WAHR für Erfolg, FALSE bei Fehler zurück.
Hinweise
Die primäre Gruppe ist die Standardgruppe für neue Objekte, die erstellt wurden, während dieses Zugriffstoken wirksam ist.