Sdílet prostřednictvím


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

CreateProcessAsUserCreateProcessAsUser 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

CreateRestrictedTokenPoužívá CreateRestrictedToken Win32 funkce k vytvoření nového CAccessToken objektu s omezeními.

Důležité

Při použití CreateRestrictedTokense 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á CAccessTokenvlastnictví 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.

Viz také

Ukázka ATLSecurity
Přístupové tokeny
Přehled třídy