CAccessToken – třída
Tato třída je obálka pro přístupový token.
Důležité
Tuto třídu a její členy nelze použít v aplikacích, které se spouští v prostředí Windows Runtime.
Syntaxe
class CAccessToken
Členové
Veřejné konstruktory
Název | Popis |
---|---|
CAccessToken::~CAccessToken | Destruktor. |
Veřejné metody
Název | Popis |
---|---|
CAccessToken::Attach | Voláním této metody převezmete vlastnictví daného popisovače přístupového tokenu. |
CAccessToken::CheckTokenMembership | Voláním této metody určíte, zda je v objektu CAccessToken povolen zadaný identifikátor SID. |
CAccessToken::CreateImpersonationToken | Voláním této metody vytvořte nový přístupový token zosobnění. |
CAccessToken::CreatePrimaryToken | Voláním této metody vytvořte nový primární token. |
CAccessToken::CreateProcessAsUser | Voláním této metody vytvoříte nový proces spuštěný v kontextu zabezpečení uživatele reprezentovaný objektem CAccessToken . |
CAccessToken::CreateRestrictedToken | Voláním této metody vytvořte nový omezený CAccessToken objekt. |
CAccessToken::D etach | Voláním této metody odvoláte vlastnictví přístupového tokenu. |
CAccessToken::D isablePrivilege | Voláním této metody zakážete oprávnění v objektu CAccessToken . |
CAccessToken::D isablePrivileges | Voláním této metody zakážete jedno nebo více oprávnění v objektu CAccessToken . |
CAccessToken::EnablePrivilege | Voláním této metody povolíte oprávnění v objektu CAccessToken . |
CAccessToken::EnablePrivileges | Voláním této metody povolíte jedno nebo více oprávnění v objektu CAccessToken . |
CAccessToken::GetDefaultDacl | Voláním této metody vrátíte výchozí seznam DACL objektu CAccessToken . |
CAccessToken::GetEffectiveToken | Voláním této metody získáte CAccessToken objekt, který se rovná přístupového tokenu pro aktuální vlákno. |
CAccessToken::GetGroups | Voláním této metody vrátíte CAccessToken skupiny tokenů objektu. |
CAccessToken::GetHandle | Voláním této metody načtěte popisovač přístupového tokenu. |
CAccessToken::GetImpersonationLevel | Voláním této metody získáte úroveň zosobnění z přístupového tokenu. |
CAccessToken::GetLogonSessionId | Voláním této metody získáte ID relace přihlášení přidružené k objektu CAccessToken . |
CAccessToken::GetLogonSid | Voláním této metody získáte identifikátor SID přihlášení přidružený k objektu CAccessToken . |
CAccessToken::GetOwner | Voláním této metody získáte vlastníka přidruženého k objektu CAccessToken . |
CAccessToken::GetPrimaryGroup | Voláním této metody získáte primární skupinu přidruženou k objektu CAccessToken . |
CAccessToken::GetPrivileges | Voláním této metody získáte oprávnění přidružená k objektu CAccessToken . |
CAccessToken::GetProcessToken | Voláním této metody inicializujete CAccessToken přístupový token z daného procesu. |
CAccessToken::GetProfile | Voláním této metody získáte popisovač odkazující na profil uživatele přidružený k objektu CAccessToken . |
CAccessToken::GetSource | Voláním této metody získáte zdroj objektu CAccessToken . |
CAccessToken::GetStatistics | Voláním této metody získáte informace přidružené k objektu CAccessToken . |
CAccessToken::GetTerminalServicesSessionId | Voláním této metody získáte ID relace terminálové služby přidružené k objektu CAccessToken . |
CAccessToken::GetThreadToken | Voláním této metody inicializujete CAccessToken token z daného vlákna. |
CAccessToken::GetTokenId | Voláním této metody získáte ID tokenu přidruženého k objektu CAccessToken . |
CAccessToken::GetType | Voláním této metody získáte typ tokenu objektu CAccessToken . |
CAccessToken::GetUser | Voláním této metody identifikujte uživatele přidruženého k objektu CAccessToken . |
CAccessToken::HKeyCurrentUser | Voláním této metody získáte popisovač odkazující na profil uživatele přidružený k objektu CAccessToken . |
CAccessToken::Impersonate | Voláním této metody přiřaďte zosobnění CAccessToken vláknu. |
CAccessToken::ImpersonateLoggedOnUser | Voláním této metody povolíte volajícímu vláknu zosobnit kontext zabezpečení přihlášeného uživatele. |
CAccessToken::IsTokenRestricted | Voláním této metody otestujete CAccessToken , zda objekt obsahuje seznam omezených identifikátorů SID. |
CAccessToken::LoadUserProfile | Voláním této metody načtěte profil uživatele přidružený k objektu CAccessToken . |
CAccessToken::LogonUser | Voláním této metody vytvoříte přihlašovací relaci pro uživatele přidruženého k daným přihlašovacím údajům. |
CAccessToken::OpenCOMClientToken | Tuto metodu volejte ze serveru COM, který zpracovává volání z klienta, aby se inicializoval CAccessToken přístupový token z klienta COM. |
CAccessToken::OpenNamedPipeClientToken | Tuto metodu volejte ze serveru, který přijímá požadavky přes pojmenovaný kanál, aby se inicializoval CAccessToken přístupový token z klienta. |
CAccessToken::OpenRPCClientToken | Tuto metodu volejte ze serveru, který zpracovává volání z klienta RPC, a inicializuje CAccessToken se přístupovým tokenem z klienta. |
CAccessToken::OpenThreadToken | Voláním této metody nastavíte úroveň zosobnění a pak inicializujete CAccessToken token z daného vlákna. |
CAccessToken::P rivilegeCheck | Voláním této metody určíte, zda je v objektu CAccessToken povolena zadaná sada oprávnění. |
CAccessToken::Revert | Voláním této metody zastavíte vlákno, které používá token zosobnění. |
CAccessToken::SetDefaultDacl | Voláním této metody nastavíte výchozí seznam DACL objektu CAccessToken . |
CAccessToken::SetOwner | Voláním této metody nastavíte vlastníka objektu CAccessToken . |
CAccessToken::SetPrimaryGroup | Voláním této metody nastavíte primární skupinu objektu CAccessToken . |
Poznámky
Přístupový token je objekt, který popisuje kontext zabezpečení procesu nebo vlákna a je přidělen každému uživateli přihlášeným k systému Windows.
Úvod k modelu řízení přístupu ve Windows najdete v tématu Řízení přístupu v sadě Windows SDK.
Požadavky
Hlavička: atlsecurity.h
CAccessToken::Attach
Voláním této metody převezmete vlastnictví daného popisovače přístupového tokenu.
void Attach(HANDLE hToken) throw();
Parametry
hToken
Popisovač přístupového tokenu.
Poznámky
V sestaveních ladění dojde k chybě kontrolního výrazu, pokud CAccessToken
objekt již má vlastnictví přístupového tokenu.
CAccessToken::~CAccessToken
Destruktor.
virtual ~CAccessToken() throw();
Poznámky
Uvolní všechny přidělené prostředky.
CAccessToken::CheckTokenMembership
Voláním této metody určíte, zda je v objektu CAccessToken
povolen zadaný identifikátor SID.
bool CheckTokenMembership(
const CSid& rSid,
bool* pbIsMember) const throw(...);
Parametry
rSid
Odkaz na objekt CSid Class .
pbIsMember
Ukazatel na proměnnou, která přijímá výsledky kontroly.
Návratová hodnota
Vrátí hodnotu PRAVDA při úspěchu, NEPRAVDA při selhání.
Poznámky
Metoda CheckTokenMembership
zkontroluje přítomnost identifikátoru SID v identifikátorech SID uživatele a skupiny přístupového tokenu. Pokud je identifikátor SID k dispozici a má atribut SE_GROUP_ENABLED, je vlastnost pbIsMember nastavená na HODNOTU PRAVDA. V opačném případě je nastavena na HODNOTU FALSE.
V buildech ladění dojde k chybě kontrolního výrazu, pokud pbIsMember není platným ukazatelem.
Poznámka:
Objekt CAccessToken
musí být token zosobnění, nikoli primární token.
CAccessToken::CreateImpersonationToken
Voláním této metody vytvořte přístupový token zosobnění.
bool CreateImpersonationToken(
CAccessToken* pImp,
SECURITY_IMPERSONATION_LEVEL sil = SecurityImpersonation) const throw(...);
Parametry
pasák
Ukazatel na nový CAccessToken
objekt.
sil
Určuje typ výčtu SECURITY_IMPERSONATION_LEVEL , který poskytuje úroveň zosobnění nového tokenu.
Návratová hodnota
Vrátí hodnotu PRAVDA při úspěchu, NEPRAVDA při selhání.
Poznámky
CreateImpersonationToken
volá DuplicateToken k vytvoření nového tokenu zosobnění.
CAccessToken::CreatePrimaryToken
Voláním této metody vytvořte nový primární token.
bool CreatePrimaryToken(
CAccessToken* pPri,
DWORD dwDesiredAccess = MAXIMUM_ALLOWED,
const CSecurityAttributes* pTokenAttributes = NULL) const throw(...);
Parametry
pPri
Ukazatel na nový CAccessToken
objekt.
dwDesiredAccess
Určuje požadovaná přístupová práva pro nový token. Výchozí MAXIMUM_ALLOWED vyžaduje všechna přístupová práva platná pro volajícího. Další informace o přístupovýchprávch
pTokenAttributes
Ukazatel na strukturu SECURITY_ATTRIBUTES , která určuje popisovač zabezpečení pro nový token a určuje, zda podřízené procesy mohou token dědit. Pokud pTokenAttributes je NULL, token získá výchozí popisovač zabezpečení a popisovač nelze zdědit.
Návratová hodnota
Vrátí hodnotu PRAVDA při úspěchu, NEPRAVDA při selhání.
Poznámky
CreatePrimaryToken
volá DuplicateTokenEx k vytvoření nového primárního tokenu.
CAccessToken::CreateProcessAsUser
Voláním této metody vytvoříte nový proces spuštěný v kontextu zabezpečení uživatele reprezentovaný objektem 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();
Parametry
pApplicationName
Ukazatel na řetězec ukončený hodnotou null, který určuje modul, který se má provést. Tento parametr nemusí být NULL.
pCommandLine
Ukazatel na řetězec ukončený hodnotou null, který určuje příkazový řádek, který se má spustit.
pProcessInformation
Ukazatel na strukturu PROCESS_INFORMATION, která přijímá identifikační informace o novém procesu.
pStartupInfo
Ukazatel na strukturu STARTUPINFO , která určuje, jak se má zobrazit hlavní okno nového procesu.
dwCreationFlags
Určuje další příznaky, které řídí třídu priority a vytvoření procesu. Seznam příznaků najdete ve funkci Win32 CreateProcessAsUser .
bLoadProfile
Pokud je hodnota TRUE, načte se profil uživatele loadUserProfile.
pProcessAttributes
Ukazatel na strukturu SECURITY_ATTRIBUTES , která určuje popisovač zabezpečení pro nový proces a určuje, zda podřízené procesy mohou dědit vrácený popisovač. Pokud pProcessAttributes je NULL, proces získá výchozí popisovač zabezpečení a popisovač nelze zdědit.
pThreadAttributes
Ukazatel na SECURITY_ATTRIBUTES strukturu, která určuje popisovač zabezpečení pro nové vlákno a určuje, zda podřízené procesy mohou dědit vrácený popisovač. Pokud pThreadAttributes je NULL, vlákno získá výchozí popisovač zabezpečení a popisovač nelze zdědit.
bInherit
Určuje, zda nový proces dědí popisovače z volajícího procesu. Pokud je pravda, každý zděděný otevřený popisovač ve volajícím procesu je zděděn novým procesem. Zděděné popisovače mají stejnou hodnotu a přístupová oprávnění jako původní popisovače.
pCurrentDirectory
Ukazatel na řetězec ukončený hodnotou null, který určuje aktuální jednotku a adresář pro nový proces. Řetězec musí být úplná cesta, která obsahuje písmeno jednotky. Pokud má tento parametr hodnotu NULL, nový proces bude mít stejnou aktuální jednotku a adresář jako volající proces.
Návratová hodnota
Vrátí hodnotu PRAVDA při úspěchu, NEPRAVDA při selhání.
Poznámky
CreateProcessAsUser
CreateProcessAsUser
používá funkci Win32 k vytvoření nového procesu, který běží v kontextu zabezpečení uživatele reprezentovaný objektemCAccessToken
. Úplný popis požadovaných parametrů najdete v popisu funkce CreateProcessAsUser .
Aby byla tato metoda úspěšná, CAccessToken
musí objekt obsahovat AssignPrimaryToken (pokud se nejedná o omezený token) a ZvýšitQuota oprávnění.
CAccessToken::CreateRestrictedToken
Voláním této metody vytvořte nový omezený CAccessToken
objekt.
bool CreateRestrictedToken(
CAccessToken* pRestrictedToken,
const CTokenGroups& SidsToDisable,
const CTokenGroups& SidsToRestrict,
const CTokenPrivileges& PrivilegesToDelete = CTokenPrivileges()) const throw(...);
Parametry
pRestrictedToken
Nový, omezený CAccessToken
objekt.
SidsToDisable
Objekt CTokenGroups
, který určuje identifikátory SID pouze pro odepření.
SidsToRestrict
Objekt CTokenGroups
, který určuje omezení identifikátorů SID.
OprávněníToDelete
Objekt CTokenPrivileges
, který určuje oprávnění k odstranění v tokenu s omezeným přístupem. Výchozí hodnota vytvoří prázdný objekt.
Návratová hodnota
Vrátí hodnotu PRAVDA při úspěchu, NEPRAVDA při selhání.
Poznámky
CreateRestrictedToken
Používá CreateRestrictedToken Win32 funkce k vytvoření nového CAccessToken
objektu s omezeními.
Důležité
Při použití CreateRestrictedToken
se ujistěte, že stávající token je platný (a není zadán uživatelem) a SidsToDisable a PrivilegesToDelete jsou platné (a nezadá se uživatelem). Pokud metoda vrátí HODNOTU FALSE, zamítejte funkce.
CAccessToken::D etach
Voláním této metody odvoláte vlastnictví přístupového tokenu.
HANDLE Detach() throw();
Návratová hodnota
Vrátí popisovač, který CAccessToken
byl odpojen.
Poznámky
Tato metoda odvolá CAccessToken
vlastnictví přístupového tokenu.
CAccessToken::D isablePrivilege
Voláním této metody zakážete oprávnění v objektu CAccessToken
.
bool DisablePrivilege(
LPCTSTR pszPrivilege,
CTokenPrivileges* pPreviousState = NULL) throw(...);
Parametry
pszPrivilege
Ukazatel na řetězec obsahující oprávnění k zakázání v objektu CAccessToken
.
pPreviousState
Ukazatel na CTokenPrivileges
objekt, který bude obsahovat předchozí stav oprávnění.
Návratová hodnota
Vrátí hodnotu PRAVDA při úspěchu, NEPRAVDA při selhání.
CAccessToken::D isablePrivileges
Voláním této metody zakážete jedno nebo více oprávnění v objektu CAccessToken
.
bool DisablePrivileges(
const CAtlArray<LPCTSTR>& rPrivileges,
CTokenPrivileges* pPreviousState = NULL) throw(...);
Parametry
rPrivileges
Ukazatel na pole řetězců obsahujících oprávnění k zakázání v objektu CAccessToken
.
pPreviousState
Ukazatel na CTokenPrivileges
objekt, který bude obsahovat předchozí stav oprávnění.
Návratová hodnota
Vrátí hodnotu PRAVDA při úspěchu, NEPRAVDA při selhání.
CAccessToken::EnablePrivilege
Voláním této metody povolíte oprávnění v objektu CAccessToken
.
bool EnablePrivilege(
LPCTSTR pszPrivilege,
CTokenPrivileges* pPreviousState = NULL) throw(...);
Parametry
pszPrivilege
Ukazatel na řetězec obsahující oprávnění k povolení v objektu CAccessToken
.
pPreviousState
Ukazatel na CTokenPrivileges
objekt, který bude obsahovat předchozí stav oprávnění.
Návratová hodnota
Vrátí hodnotu PRAVDA při úspěchu, NEPRAVDA při selhání.
CAccessToken::EnablePrivileges
Voláním této metody povolíte jedno nebo více oprávnění v objektu CAccessToken
.
bool EnablePrivileges(
const CAtlArray<LPCTSTR>& rPrivileges,
CTokenPrivileges* pPreviousState = NULL) throw(...);
Parametry
rPrivileges
Ukazatel na pole řetězců obsahujících oprávnění k povolení v objektu CAccessToken
.
pPreviousState
Ukazatel na CTokenPrivileges
objekt, který bude obsahovat předchozí stav oprávnění.
Návratová hodnota
Vrátí hodnotu PRAVDA při úspěchu, NEPRAVDA při selhání.
CAccessToken::GetDefaultDacl
Voláním této metody vrátíte výchozí seznam DACL objektu CAccessToken
.
bool GetDefaultDacl(CDacl* pDacl) const throw(...);
Parametry
pDacl
Ukazatel na objekt CDacl Class , který obdrží výchozí seznam DACL objektu CAccessToken
.
Návratová hodnota
Vrátí hodnotu TRUE, pokud byl obnoven výchozí seznam DACL, jinak NEPRAVDA.
CAccessToken::GetEffectiveToken
Voláním této metody získáte CAccessToken
objekt, který se rovná přístupového tokenu pro aktuální vlákno.
bool GetEffectiveToken(DWORD dwDesiredAccess) throw();
Parametry
dwDesiredAccess
Určuje přístupovou masku, která určuje požadované typy přístupu k přístupovém tokenu. Tyto požadované typy přístupu se porovnávají s seznamem DACL tokenu a určují, které přístupy jsou uděleny nebo odepřeny.
Návratová hodnota
Vrátí hodnotu PRAVDA při úspěchu, NEPRAVDA při selhání.
CAccessToken::GetGroups
Voláním této metody vrátíte CAccessToken
skupiny tokenů objektu.
bool GetGroups(CTokenGroups* pGroups) const throw(...);
Parametry
pGroups
Ukazatel na objekt CTokenGroups Class , který obdrží informace o skupině.
Návratová hodnota
Vrátí hodnotu PRAVDA při úspěchu, NEPRAVDA při selhání.
CAccessToken::GetHandle
Voláním této metody načtěte popisovač přístupového tokenu.
HANDLE GetHandle() const throw();
Návratová hodnota
Vrátí popisovač přístupového tokenu objektu CAccessToken
.
CAccessToken::GetImpersonationLevel
Voláním této metody získáte úroveň zosobnění z přístupového tokenu.
bool GetImpersonationLevel(
SECURITY_IMPERSONATION_LEVEL* pImpersonationLevel) const throw(...);
Parametry
pImpersonationLevel
Ukazatel na typ výčtu SECURITY_IMPERSONATION_LEVEL , který obdrží informace o úrovni zosobnění.
Návratová hodnota
Vrátí hodnotu PRAVDA při úspěchu, NEPRAVDA při selhání.
CAccessToken::GetLogonSessionId
Voláním této metody získáte ID relace přihlášení přidružené k objektu CAccessToken
.
bool GetLogonSessionId(LUID* pluid) const throw(...);
Parametry
pluid
Ukazatel na IDENTIFIKÁTOR LUID , který obdrží ID přihlašovací relace.
Návratová hodnota
Vrátí hodnotu PRAVDA při úspěchu, NEPRAVDA při selhání.
Poznámky
V buildech ladění dojde k chybě kontrolního výrazu, pokud je hodnota pluid neplatná.
CAccessToken::GetLogonSid
Voláním této metody získáte identifikátor SID přihlášení přidružený k objektu CAccessToken
.
bool GetLogonSid(CSid* pSid) const throw(...);
Parametry
pSid
Ukazatel na objekt CSid Class .
Návratová hodnota
Vrátí hodnotu PRAVDA při úspěchu, NEPRAVDA při selhání.
Poznámky
V sestaveních ladění dojde k chybě kontrolního výrazu, pokud pSid je neplatná hodnota.
CAccessToken::GetOwner
Voláním této metody získáte vlastníka přidruženého k objektu CAccessToken
.
bool GetOwner(CSid* pSid) const throw(...);
Parametry
pSid
Ukazatel na objekt CSid Class .
Návratová hodnota
Vrátí hodnotu PRAVDA při úspěchu, NEPRAVDA při selhání.
Poznámky
Vlastník je ve výchozím nastavení nastaven pro všechny objekty vytvořené, zatímco tento přístupový token je v platnosti.
CAccessToken::GetPrimaryGroup
Voláním této metody získáte primární skupinu přidruženou k objektu CAccessToken
.
bool GetPrimaryGroup(CSid* pSid) const throw(...);
Parametry
pSid
Ukazatel na objekt CSid Class .
Návratová hodnota
Vrátí hodnotu PRAVDA při úspěchu, NEPRAVDA při selhání.
Poznámky
Skupina je ve výchozím nastavení nastavena pro všechny objekty vytvořené, zatímco tento přístupový token je v platnosti.
CAccessToken::GetPrivileges
Voláním této metody získáte oprávnění přidružená k objektu CAccessToken
.
bool GetPrivileges(CTokenPrivileges* pPrivileges) const throw(...);
Parametry
pPrivileges
Ukazatel na objekt CTokenPrivileges Class , který obdrží oprávnění.
Návratová hodnota
Vrátí hodnotu PRAVDA při úspěchu, NEPRAVDA při selhání.
CAccessToken::GetProcessToken
Voláním této metody inicializujete CAccessToken
přístupový token z daného procesu.
bool GetProcessToken(DWORD dwDesiredAccess, HANDLE hProcess = NULL) throw();
Parametry
dwDesiredAccess
Určuje přístupovou masku, která určuje požadované typy přístupu k přístupovém tokenu. Tyto požadované typy přístupu se porovnávají s seznamem DACL tokenu a určují, které přístupy jsou uděleny nebo odepřeny.
hProcess
Popisovač procesu, jehož přístupový token je otevřen. Pokud se použije výchozí hodnota NULL, použije se aktuální proces.
Návratová hodnota
Vrátí hodnotu PRAVDA při úspěchu, NEPRAVDA při selhání.
Poznámky
Volá funkci OpenProcessToken Win32.
CAccessToken::GetProfile
Voláním této metody získáte popisovač odkazující na profil uživatele přidružený k objektu CAccessToken
.
HANDLE GetProfile() const throw();
Návratová hodnota
Vrátí popisovač odkazující na profil uživatele nebo hodnotu NULL, pokud neexistuje žádný profil.
CAccessToken::GetSource
Voláním této metody získáte zdroj objektu CAccessToken
.
bool GetSource(TOKEN_SOURCE* pSource) const throw(...);
Parametry
pSource
Ukazatel na strukturu TOKEN_SOURCE
Návratová hodnota
Vrátí hodnotu PRAVDA při úspěchu, NEPRAVDA při selhání.
CAccessToken::GetStatistics
Voláním této metody získáte informace přidružené k objektu CAccessToken
.
bool GetStatistics(TOKEN_STATISTICS* pStatistics) const throw(...);
Parametry
pStatistics
Ukazatel na strukturu TOKEN_STATISTICS
Návratová hodnota
Vrátí hodnotu PRAVDA při úspěchu, NEPRAVDA při selhání.
CAccessToken::GetTerminalServicesSessionId
Voláním této metody získáte ID relace terminálové služby přidružené k objektu CAccessToken
.
bool GetTerminalServicesSessionId(DWORD* pdwSessionId) const throw(...);
Parametry
pdwSessionId
ID relace terminálové služby.
Návratová hodnota
Vrátí hodnotu PRAVDA při úspěchu, NEPRAVDA při selhání.
CAccessToken::GetThreadToken
Voláním této metody inicializujete CAccessToken
token z daného vlákna.
bool GetThreadToken(
DWORD dwDesiredAccess,
HANDLE hThread = NULL,
bool bOpenAsSelf = true) throw();
Parametry
dwDesiredAccess
Určuje přístupovou masku, která určuje požadované typy přístupu k přístupovém tokenu. Tyto požadované typy přístupu se porovnávají s seznamem DACL tokenu a určují, které přístupy jsou uděleny nebo odepřeny.
hThread
Popisovač podprocesu, jehož přístupový token je otevřen.
bOpenAsSelf
Určuje, zda má být kontrola přístupu provedena v kontextu zabezpečení vlákna volající metodu GetThreadToken
nebo v kontextu zabezpečení procesu volání vlákna.
Pokud je tento parametr NEPRAVDA, provede se kontrola přístupu pomocí kontextu zabezpečení pro volající vlákno. Pokud vlákno zosobní klienta, může to být tento kontext zabezpečení procesu klienta. Pokud je tento parametr TRUE, provede se kontrola přístupu pomocí kontextu zabezpečení procesu volajícího vlákna.
Návratová hodnota
Vrátí hodnotu PRAVDA při úspěchu, NEPRAVDA při selhání.
CAccessToken::GetTokenId
Voláním této metody získáte ID tokenu přidruženého k objektu CAccessToken
.
bool GetTokenId(LUID* pluid) const throw(...);
Parametry
pluid
Ukazatel na LUID , který obdrží ID tokenu.
Návratová hodnota
Vrátí hodnotu PRAVDA při úspěchu, NEPRAVDA při selhání.
CAccessToken::GetType
Voláním této metody získáte typ tokenu objektu CAccessToken
.
bool GetType(TOKEN_TYPE* pType) const throw(...);
Parametry
pType
Adresa proměnné TOKEN_TYPE, která při úspěchu obdrží typ tokenu.
Návratová hodnota
Vrátí hodnotu PRAVDA při úspěchu, NEPRAVDA při selhání.
Poznámky
Typ výčtu TOKEN_TYPE obsahuje hodnoty, které rozlišují mezi primárním tokenem a tokenem zosobnění.
CAccessToken::GetUser
Voláním této metody identifikujte uživatele přidruženého k objektu CAccessToken
.
bool GetUser(CSid* pSid) const throw(...);
Parametry
pSid
Ukazatel na objekt CSid Class .
Návratová hodnota
Vrátí hodnotu PRAVDA při úspěchu, NEPRAVDA při selhání.
CAccessToken::HKeyCurrentUser
Voláním této metody získáte popisovač odkazující na profil uživatele přidružený k objektu CAccessToken
.
HKEY HKeyCurrentUser() const throw();
Návratová hodnota
Vrátí popisovač odkazující na profil uživatele nebo hodnotu NULL, pokud neexistuje žádný profil.
CAccessToken::Impersonate
Voláním této metody přiřaďte zosobnění CAccessToken
vláknu.
bool Impersonate(HANDLE hThread = NULL) const throw(...);
Parametry
hThread
Přiřaďte token zosobnění k vláknu. Tento popisovač musí být otevřen s TOKEN_IMPERSONATE přístupovými právy. Pokud hThread je NULL, metoda způsobí, že vlákno přestane používat token zosobnění.
Návratová hodnota
Vrátí hodnotu PRAVDA při úspěchu, NEPRAVDA při selhání.
Poznámky
V sestaveních ladění dojde k chybě kontrolního výrazu, pokud CAccessToken
nemá platný ukazatel na token.
CAutoRevertImpersonation třída lze použít k automatickému vrácení zosobněných přístupových tokenů.
CAccessToken::ImpersonateLoggedOnUser
Voláním této metody povolíte volajícímu vláknu zosobnit kontext zabezpečení přihlášeného uživatele.
bool ImpersonateLoggedOnUser() const throw(...);
Návratová hodnota
Vrátí hodnotu PRAVDA při úspěchu, NEPRAVDA při selhání.
Poznámky
Důležité
Pokud volání funkce zosobnění z nějakého důvodu selže, klient se nezosobní a požadavek klienta se provede v kontextu zabezpečení procesu, ze kterého bylo volání provedeno. Pokud je proces spuštěný jako vysoce privilegovaný účet nebo jako člen skupiny pro správu, může být uživatel schopen provádět akce, které by jinak zakázal. Proto by měla být vrácená hodnota této funkce vždy potvrzena.
CAccessToken::IsTokenRestricted
Voláním této metody otestujete CAccessToken
, zda objekt obsahuje seznam omezených identifikátorů SID.
bool IsTokenRestricted() const throw();
Návratová hodnota
Vrátí hodnotu TRUE, pokud objekt obsahuje seznam omezující identifikátory SID, FALSE, pokud neexistují žádné omezení identifikátorů SID nebo pokud metoda selže.
CAccessToken::LoadUserProfile
Voláním této metody načtěte profil uživatele přidružený k objektu CAccessToken
.
bool LoadUserProfile() throw(...);
Návratová hodnota
Vrátí hodnotu PRAVDA při úspěchu, NEPRAVDA při selhání.
Poznámky
V sestaveních ladění dojde k chybě kontrolního výrazu, pokud CAccessToken
neobsahuje platný token nebo pokud profil uživatele již existuje.
CAccessToken::LogonUser
Voláním této metody vytvoříte přihlašovací relaci pro uživatele přidruženého k daným přihlašovacím údajům.
bool LogonUser(
LPCTSTR pszUserName,
LPCTSTR pszDomain,
LPCTSTR pszPassword,
DWORD dwLogonType = LOGON32_LOGON_INTERACTIVE,
DWORD dwLogonProvider = LOGON32_PROVIDER_DEFAULT) throw();
Parametry
pszUserName
Ukazatel na řetězec ukončený hodnotou null, který určuje uživatelské jméno. Toto je jméno uživatelského účtu, ke které se chcete přihlásit.
pszDomain
Ukazatel na řetězec ukončený hodnotou null, který určuje název domény nebo serveru, jehož databáze účtu obsahuje účet pszUserName .
pszPassword
Ukazatel na řetězec s ukončením s hodnotou null, který určuje heslo s vymazáním textu pro uživatelský účet určený pszUserName.
dwLogonType
Určuje typ přihlašovací operace, která se má provést. Další podrobnosti najdete v části LogonUser .
dwLogonProvider
Určuje zprostředkovatele přihlášení. Další podrobnosti najdete v části LogonUser .
Návratová hodnota
Vrátí hodnotu PRAVDA při úspěchu, NEPRAVDA při selhání.
Poznámky
Přístupový token, který je výsledkem přihlášení, bude přidružen k objektu CAccessToken
. Aby byla tato metoda úspěšná, CAccessToken
musí objekt obsahovat SE_TCB_NAME oprávnění a identifikovat držitele jako součást důvěryhodného počítačového základu. Další informace o požadovaných oprávněních najdete v části LogonUser .
CAccessToken::OpenCOMClientToken
Tuto metodu volejte ze serveru COM, který zpracovává volání z klienta, aby se inicializoval CAccessToken
přístupový token z klienta COM.
bool OpenCOMClientToken(
DWORD dwDesiredAccess,
bool bImpersonate = false,
bool bOpenAsSelf = true) throw(...);
Parametry
dwDesiredAccess
Určuje přístupovou masku, která určuje požadované typy přístupu k přístupovém tokenu. Tyto požadované typy přístupu se porovnávají s seznamem DACL tokenu a určují, které přístupy jsou uděleny nebo odepřeny.
bImpersonate
Pokud je pravda, aktuální vlákno zosobní volajícího klienta COM, pokud se toto volání úspěšně dokončí. Pokud je hodnota FALSE, přístupový token se otevře, ale vlákno po dokončení tohoto volání nebude mít token zosobnění.
bOpenAsSelf
Určuje, zda je kontrola přístupu provedena v kontextu zabezpečení vlákna volání GetThreadToken metoda nebo proti kontextu zabezpečení procesu volajícího vlákna.
Pokud je tento parametr NEPRAVDA, provede se kontrola přístupu pomocí kontextu zabezpečení pro volající vlákno. Pokud vlákno zosobní klienta, může to být tento kontext zabezpečení procesu klienta. Pokud je tento parametr TRUE, provede se kontrola přístupu pomocí kontextu zabezpečení procesu volajícího vlákna.
Návratová hodnota
Vrátí hodnotu PRAVDA při úspěchu, NEPRAVDA při selhání.
Poznámky
CAutoRevertImpersonation Třída lze použít k automatickému vrácení zosobněných přístupových tokenů vytvořených nastavením příznaku bImpersonate na HODNOTU TRUE.
CAccessToken::OpenNamedPipeClientToken
Tuto metodu volejte ze serveru, který přijímá požadavky přes pojmenovaný kanál, aby se inicializoval CAccessToken
přístupový token z klienta.
bool OpenNamedPipeClientToken(
HANDLE hPipe,
DWORD dwDesiredAccess,
bool bImpersonate = false,
bool bOpenAsSelf = true) throw(...);
Parametry
hPipe
Popisovač pojmenovaného kanálu
dwDesiredAccess
Určuje přístupovou masku, která určuje požadované typy přístupu k přístupovém tokenu. Tyto požadované typy přístupu se porovnávají s seznamem DACL tokenu a určují, které přístupy jsou uděleny nebo odepřeny.
bImpersonate
Pokud je pravda, aktuální vlákno zosobní klienta volajícího kanálu, pokud se toto volání úspěšně dokončí. Pokud je hodnota FALSE, přístupový token se otevře, ale vlákno po dokončení tohoto volání nebude mít token zosobnění.
bOpenAsSelf
Určuje, zda je kontrola přístupu provedena v kontextu zabezpečení vlákna volání GetThreadToken metoda nebo proti kontextu zabezpečení procesu volajícího vlákna.
Pokud je tento parametr NEPRAVDA, provede se kontrola přístupu pomocí kontextu zabezpečení pro volající vlákno. Pokud vlákno zosobní klienta, může to být tento kontext zabezpečení procesu klienta. Pokud je tento parametr TRUE, provede se kontrola přístupu pomocí kontextu zabezpečení procesu volajícího vlákna.
Návratová hodnota
Vrátí hodnotu PRAVDA při úspěchu, NEPRAVDA při selhání.
Poznámky
CAutoRevertImpersonation Třída lze použít k automatickému vrácení zosobněných přístupových tokenů vytvořených nastavením příznaku bImpersonate na HODNOTU TRUE.
CAccessToken::OpenRPCClientToken
Tuto metodu volejte ze serveru, který zpracovává volání z klienta RPC, a inicializuje CAccessToken
se přístupovým tokenem z klienta.
bool OpenRPCClientToken(
RPC_BINDING_HANDLE BindingHandle,
DWORD dwDesiredAccess,
bool bImpersonate = false,
bool bOpenAsSelf = true) throw(...);
Parametry
BindingHandle
Popisovač vazby na serveru, který představuje vazbu k klientovi.
dwDesiredAccess
Určuje přístupovou masku, která určuje požadované typy přístupu k přístupovém tokenu. Tyto požadované typy přístupu se porovnávají s seznamem DACL tokenu a určují, které přístupy jsou uděleny nebo odepřeny.
bImpersonate
Pokud je pravda, aktuální vlákno zosobní volajícího klienta RPC, pokud se toto volání úspěšně dokončí. Pokud je hodnota FALSE, přístupový token se otevře, ale vlákno po dokončení tohoto volání nebude mít token zosobnění.
bOpenAsSelf
Určuje, zda je kontrola přístupu provedena v kontextu zabezpečení vlákna volání GetThreadToken metoda nebo proti kontextu zabezpečení procesu volajícího vlákna.
Pokud je tento parametr NEPRAVDA, provede se kontrola přístupu pomocí kontextu zabezpečení pro volající vlákno. Pokud vlákno zosobní klienta, může to být tento kontext zabezpečení procesu klienta. Pokud je tento parametr TRUE, provede se kontrola přístupu pomocí kontextu zabezpečení procesu volajícího vlákna.
Návratová hodnota
Vrátí hodnotu PRAVDA při úspěchu, NEPRAVDA při selhání.
Poznámky
CAutoRevertImpersonation Třída lze použít k automatickému vrácení zosobněných přístupových tokenů vytvořených nastavením příznaku bImpersonate na HODNOTU TRUE.
CAccessToken::OpenThreadToken
Voláním této metody nastavíte úroveň zosobnění a pak inicializujete CAccessToken
token z daného vlákna.
bool OpenThreadToken(
DWORD dwDesiredAccess,
bool bImpersonate = false,
bool bOpenAsSelf = true,
SECURITY_IMPERSONATION_LEVEL sil = SecurityImpersonation) throw(...);
Parametry
dwDesiredAccess
Určuje přístupovou masku, která určuje požadované typy přístupu k přístupovém tokenu. Tyto požadované typy přístupu se porovnávají s seznamem DACL tokenu a určují, které přístupy jsou uděleny nebo odepřeny.
bImpersonate
Pokud je pravda, vlákno bude ponecháno na požadované úrovni zosobnění po dokončení této metody. Pokud je hodnota FALSE, vlákno se vrátí na původní úroveň zosobnění.
bOpenAsSelf
Určuje, zda je kontrola přístupu provedena v kontextu zabezpečení vlákna volání GetThreadToken metoda nebo proti kontextu zabezpečení procesu volajícího vlákna.
Pokud je tento parametr NEPRAVDA, provede se kontrola přístupu pomocí kontextu zabezpečení pro volající vlákno. Pokud vlákno zosobní klienta, může to být tento kontext zabezpečení procesu klienta. Pokud je tento parametr TRUE, provede se kontrola přístupu pomocí kontextu zabezpečení procesu volajícího vlákna.
sil
Určuje SECURITY_IMPERSONATION_LEVEL výčtový typ, který poskytuje úroveň zosobnění tokenu.
Návratová hodnota
Vrátí hodnotu PRAVDA při úspěchu, NEPRAVDA při selhání.
Poznámky
OpenThreadToken
je podobný CAccessToken ::GetThreadToken, ale nastaví úroveň zosobnění před inicializací CAccessToken
z přístupového tokenu vlákna.
CAutoRevertImpersonation Třída lze použít k automatickému vrácení zosobněných přístupových tokenů vytvořených nastavením příznaku bImpersonate na HODNOTU TRUE.
CAccessToken::P rivilegeCheck
Voláním této metody určíte, zda je v objektu CAccessToken
povolena zadaná sada oprávnění.
bool PrivilegeCheck(
PPRIVILEGE_SET RequiredPrivileges,
bool* pbResult) const throw();
Parametry
RequiredPrivileges
Ukazatel na strukturu PRIVILEGE_SET
pbResult
Ukazatel na hodnotu, kterou metoda nastaví, určuje, zda jsou v objektu CAccessToken
povolena některá nebo všechna zadaná oprávnění.
Návratová hodnota
Vrátí hodnotu PRAVDA při úspěchu, NEPRAVDA při selhání.
Poznámky
Když PrivilegeCheck
se vrátí, Attributes
člen každé struktury LUID_AND_ATTRIBUTES je nastaven na SE_PRIVILEGE_USED_FOR_ACCESS pokud je povoleno odpovídající oprávnění. Tato metoda volá funkci PrivilegeCheck Win32.
CAccessToken::Revert
Voláním této metody zastavíte použití tokenu zosobnění vlákna.
bool Revert(HANDLE hThread = NULL) const throw();
Parametry
hThread
Zosobnění vrátíte popisovačem ve vlákně. Pokud je hThread null, předpokládá se aktuální vlákno.
Návratová hodnota
Vrátí hodnotu PRAVDA při úspěchu, NEPRAVDA při selhání.
Poznámky
Reversion zosobnění tokenů lze provádět automaticky pomocí CAutoRevertImpersonation Třídy.
CAccessToken::SetDefaultDacl
Voláním této metody nastavíte výchozí seznam DACL objektu CAccessToken
.
bool SetDefaultDacl(const CDacl& rDacl) throw(...);
Parametry
rDacl
Informace o nové výchozí třídě CDacl .
Návratová hodnota
Vrátí hodnotu PRAVDA při úspěchu, NEPRAVDA při selhání.
Poznámky
Výchozí seznam DACL je seznam DACL, který se ve výchozím nastavení používá při vytváření nových objektů s tímto přístupovým tokenem.
CAccessToken::SetOwner
Voláním této metody nastavíte vlastníka objektu CAccessToken
.
bool SetOwner(const CSid& rSid) throw(...);
Parametry
rSid
CSid Class objekt obsahující informace vlastníka.
Návratová hodnota
Vrátí hodnotu PRAVDA při úspěchu, NEPRAVDA při selhání.
Poznámky
Vlastník je výchozí vlastník, který se používá pro nové objekty vytvořené během tohoto přístupového tokenu.
CAccessToken::SetPrimaryGroup
Voláním této metody nastavíte primární skupinu objektu CAccessToken
.
bool SetPrimaryGroup(const CSid& rSid) throw(...);
Parametry
rSid
CSid Class objekt obsahující informace o primární skupině.
Návratová hodnota
Vrátí hodnotu PRAVDA při úspěchu, NEPRAVDA při selhání.
Poznámky
Primární skupina je výchozí skupinou pro nové objekty vytvořené během tohoto přístupového tokenu.