Udostępnij przez


Klasa CAccessToken

Ta klasa jest otoką tokenu dostępu.

Ważne

Tej klasy i jej składowych nie można używać w aplikacjach wykonywanych w środowisko wykonawcze systemu Windows.

Składnia

class CAccessToken

Członkowie

Konstruktory publiczne

Nazwa/nazwisko opis
CAccessToken::~CAccessToken Destruktora.

Metody publiczne

Nazwa/nazwisko opis
CAccessToken::Attach Wywołaj tę metodę, aby przejąć własność danego uchwytu tokenu dostępu.
CAccessToken::CheckTokenMembership Wywołaj tę metodę, aby określić, czy określony identyfikator SID jest włączony w CAccessToken obiekcie.
CAccessToken::CreateImpersonationToken Wywołaj tę metodę, aby utworzyć nowy token dostępu personifikacji.
CAccessToken::CreatePrimaryToken Wywołaj tę metodę, aby utworzyć nowy token podstawowy.
CAccessToken::CreateProcessAsUser Wywołaj tę metodę, aby utworzyć nowy proces uruchomiony w kontekście zabezpieczeń użytkownika reprezentowanego CAccessToken przez obiekt.
CAccessToken::CreateRestrictedToken Wywołaj tę metodę, aby utworzyć nowy, ograniczony CAccessToken obiekt.
CAccessToken::D etach Wywołaj tę metodę, aby odwołać własność tokenu dostępu.
CAccessToken::D isablePrivilege Wywołaj tę metodę, aby wyłączyć uprawnienia w CAccessToken obiekcie.
CAccessToken::D isablePrivileges Wywołaj tę metodę, aby wyłączyć co najmniej jedno uprawnienie w CAccessToken obiekcie.
CAccessToken::EnablePrivilege Wywołaj tę metodę, aby włączyć uprawnienie w CAccessToken obiekcie .
CAccessToken::EnablePrivileges Wywołaj tę metodę, aby włączyć co najmniej jedno uprawnienie w CAccessToken obiekcie.
CAccessToken::GetDefaultDacl Wywołaj tę metodę, aby zwrócić domyślną CAccessToken listę DACL obiektu.
CAccessToken::GetEffectiveToken Wywołaj tę metodę, aby uzyskać CAccessToken obiekt równy tokenowi dostępu dla bieżącego wątku.
CAccessToken::GetGroups Wywołaj tę metodę, aby zwrócić CAccessToken grupy tokenów obiektu.
CAccessToken::GetHandle Wywołaj tę metodę, aby pobrać uchwyt do tokenu dostępu.
CAccessToken::GetImpersonationLevel Wywołaj tę metodę, aby uzyskać poziom personifikacji z tokenu dostępu.
CAccessToken::GetLogonSessionId Wywołaj tę metodę, aby uzyskać identyfikator sesji logowania skojarzony z obiektem CAccessToken .
CAccessToken::GetLogonSid Wywołaj tę metodę, aby uzyskać identyfikator SID logowania skojarzony z obiektem CAccessToken .
CAccessToken::GetOwner Wywołaj tę metodę, aby uzyskać właściciela skojarzonego z obiektem CAccessToken .
CAccessToken::GetPrimaryGroup Wywołaj tę metodę, aby pobrać grupę podstawową skojarzą z obiektem CAccessToken .
CAccessToken::GetPrivileges Wywołaj tę metodę, aby uzyskać uprawnienia skojarzone z obiektem CAccessToken .
CAccessToken::GetProcessToken Wywołaj tę metodę, aby zainicjować CAccessToken token dostępu z danego procesu.
CAccessToken::GetProfile Wywołaj tę metodę, aby uzyskać dojście wskazujące profil użytkownika skojarzony z obiektem CAccessToken .
CAccessToken::GetSource Wywołaj tę metodę, aby pobrać źródło CAccessToken obiektu.
CAccessToken::GetStatistics Wywołaj tę metodę, aby uzyskać informacje skojarzone z obiektem CAccessToken .
CAccessToken::GetTerminalServicesSessionId Wywołaj tę metodę, aby uzyskać identyfikator sesji usług terminalowych skojarzony z obiektem CAccessToken .
CAccessToken::GetThreadToken Wywołaj tę metodę, aby zainicjować CAccessToken token z danego wątku.
CAccessToken::GetTokenId Wywołaj tę metodę, aby uzyskać identyfikator tokenu skojarzony z obiektem CAccessToken .
CAccessToken::GetType Wywołaj tę metodę, aby uzyskać typ tokenu CAccessToken obiektu.
CAccessToken::GetUser Wywołaj tę metodę, aby zidentyfikować użytkownika skojarzonego z obiektem CAccessToken .
CAccessToken::HKeyCurrentUser Wywołaj tę metodę, aby uzyskać dojście wskazujące profil użytkownika skojarzony z obiektem CAccessToken .
CAccessToken::Personifikuj Wywołaj tę metodę, aby przypisać personifikację CAccessToken do wątku.
CAccessToken::ImpersonateLoggedOnUser Wywołaj tę metodę, aby umożliwić wywołaniu wątku personifikację kontekstu zabezpieczeń zalogowanego użytkownika.
CAccessToken::IsTokenRestricted Wywołaj tę metodę, aby sprawdzić, czy CAccessToken obiekt zawiera listę ograniczonych identyfikatorów SID.
CAccessToken::LoadUserProfile Wywołaj tę metodę, aby załadować profil użytkownika skojarzony z obiektem CAccessToken .
CAccessToken::LogonUser Wywołaj tę metodę, aby utworzyć sesję logowania dla użytkownika skojarzonego z podanymi poświadczeniami.
CAccessToken::OpenCOMClientToken Wywołaj tę metodę z poziomu serwera COM obsługującego wywołanie od klienta, aby zainicjować CAccessToken token dostępu z klienta COM.
CAccessToken::OpenNamedPipeClientToken Wywołaj tę metodę z poziomu serwera, który odbiera żądania za pośrednictwem nazwanego potoku, aby zainicjować CAccessToken token dostępu z klienta.
CAccessToken::OpenRPCClientToken Wywołaj tę metodę z poziomu serwera obsługującego wywołanie z klienta RPC, aby zainicjować CAccessToken token dostępu z klienta.
CAccessToken::OpenThreadToken Wywołaj tę metodę, aby ustawić poziom personifikacji, a następnie zainicjować CAccessToken element za pomocą tokenu z danego wątku.
CAccessToken::P rivilegeCheck Wywołaj tę metodę, aby określić, czy określony zestaw uprawnień jest włączony w CAccessToken obiekcie.
CAccessToken::Revert Wywołaj tę metodę, aby zatrzymać wątek używający tokenu personifikacji.
CAccessToken::SetDefaultDacl Wywołaj tę metodę, aby ustawić domyślną listę DACL CAccessToken obiektu.
CAccessToken::SetOwner Wywołaj tę metodę, aby ustawić właściciela CAccessToken obiektu.
CAccessToken::SetPrimaryGroup Wywołaj tę metodę, aby ustawić grupę podstawową CAccessToken obiektu.

Uwagi

Token dostępu to obiekt, który opisuje kontekst zabezpieczeń procesu lub wątku i jest przydzielany każdemu użytkownikowi zalogowanego do systemu Windows.

Aby zapoznać się z wprowadzeniem do modelu kontroli dostępu w systemie Windows, zobacz Kontrola dostępu w zestawie Windows SDK.

Wymagania

Nagłówek: atlsecurity.h

CAccessToken::Attach

Wywołaj tę metodę, aby przejąć własność danego uchwytu tokenu dostępu.

void Attach(HANDLE hToken) throw();

Parametry

hToken
Dojście do tokenu dostępu.

Uwagi

W kompilacjach debugowania wystąpi błąd asercji, jeśli CAccessToken obiekt ma już własność tokenu dostępu.

CAccessToken::~CAccessToken

Destruktora.

virtual ~CAccessToken() throw();

Uwagi

Zwalnia wszystkie przydzielone zasoby.

CAccessToken::CheckTokenMembership

Wywołaj tę metodę, aby określić, czy określony identyfikator SID jest włączony w CAccessToken obiekcie.

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

Parametry

rSid
Odwołanie do obiektu klasy CSid.

pbIsMember
Wskaźnik do zmiennej, która odbiera wyniki sprawdzania.

Wartość zwracana

Zwraca wartość TRUE w przypadku powodzenia, FALSE w przypadku niepowodzenia.

Uwagi

Metoda CheckTokenMembership sprawdza obecność identyfikatora SID w identyfikatorach SID użytkownika i grupy tokenu dostępu. Jeśli identyfikator SID jest obecny i ma atrybut SE_GROUP_ENABLED, parametr pbIsMember ma wartość TRUE. W przeciwnym razie jest ustawiona wartość FALSE.

W kompilacjach debugowania wystąpi błąd asercji, jeśli pbIsMember nie jest prawidłowym wskaźnikiem.

Uwaga

Obiekt CAccessToken musi być tokenem personifikacji, a nie tokenem podstawowym.

CAccessToken::CreateImpersonationToken

Wywołaj tę metodę, aby utworzyć token dostępu personifikacji.

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

Parametry

Pimp
Wskaźnik do nowego CAccessToken obiektu.

Sil
Określa typ SECURITY_IMPERSONATION_LEVEL wyliczany, który dostarcza poziom personifikacji nowego tokenu.

Wartość zwracana

Zwraca wartość TRUE w przypadku powodzenia, FALSE w przypadku niepowodzenia.

Uwagi

CreateImpersonationToken wywołuje metodę DuplicateToken , aby utworzyć nowy token personifikacji.

CAccessToken::CreatePrimaryToken

Wywołaj tę metodę, aby utworzyć nowy token podstawowy.

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

Parametry

pPri
Wskaźnik do nowego CAccessToken obiektu.

dwDesiredAccess
Określa żądane prawa dostępu dla nowego tokenu. Wartość domyślna, MAXIMUM_ALLOWED, żąda wszystkich praw dostępu, które są prawidłowe dla wywołującego. Aby uzyskać więcej informacji na temat praw dostępu, zobacz Prawa dostępu i maski dostępu.

pTokenAttributes
Wskaźnik do struktury SECURITY_ATTRIBUTES , która określa deskryptor zabezpieczeń dla nowego tokenu i określa, czy procesy podrzędne mogą dziedziczyć token. Jeśli atrybuty pTokenAttributes mają wartość NULL, token pobiera domyślny deskryptor zabezpieczeń i nie można dziedziczyć uchwytu.

Wartość zwracana

Zwraca wartość TRUE w przypadku powodzenia, FALSE w przypadku niepowodzenia.

Uwagi

CreatePrimaryToken wywołuje funkcję DuplicateTokenEx , aby utworzyć nowy token podstawowy.

CAccessToken::CreateProcessAsUser

Wywołaj tę metodę, aby utworzyć nowy proces uruchomiony w kontekście zabezpieczeń użytkownika reprezentowanego CAccessToken przez obiekt.

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
Wskaźnik do ciągu zakończonego wartością null, który określa moduł do wykonania. Ten parametr może nie mieć wartości NULL.

pCommandLine
Wskaźnik do ciągu zakończonego wartością null, który określa wiersz polecenia do wykonania.

pProcessInformation
Wskaźnik do struktury PROCESS_INFORMATION, która odbiera informacje identyfikacyjne o nowym procesie.

pStartupInfo
Wskaźnik do struktury STARTUPINFO , która określa sposób wyświetlania okna głównego dla nowego procesu.

dwCreationFlags
Określa dodatkowe flagi kontrolujące klasę priorytetu i tworzenie procesu. Aby uzyskać listę flag, zobacz funkcję Win32 CreateProcessAsUser .

bLoadProfile
Jeśli wartość TRUE, profil użytkownika zostanie załadowany z profilem LoadUserProfile.

pProcessAttributes
Wskaźnik do struktury SECURITY_ATTRIBUTES , która określa deskryptor zabezpieczeń dla nowego procesu i określa, czy procesy podrzędne mogą dziedziczyć zwrócony uchwyt. Jeśli parametr pProcessAttributes ma wartość NULL, proces pobiera domyślny deskryptor zabezpieczeń i nie można dziedziczyć uchwytu.

atrybuty pThreadAttributes
Wskaźnik do struktury SECURITY_ATTRIBUTES , która określa deskryptor zabezpieczeń dla nowego wątku i określa, czy procesy podrzędne mogą dziedziczyć zwrócony uchwyt. Jeśli atrybuty pThreadAttributes mają wartość NULL, wątek pobiera domyślny deskryptor zabezpieczeń i nie można dziedziczyć uchwytu.

bInherit
Wskazuje, czy nowy proces dziedziczy uchwyty z procesu wywołującego. Jeśli wartość TRUE, każdy dziedziczony otwarty uchwyt w procesie wywołującym jest dziedziczony przez nowy proces. Dziedziczone dojścia mają tę samą wartość i uprawnienia dostępu co oryginalne dojścia.

pCurrentDirectory
Wskaźnik do ciągu zakończonego wartością null, który określa bieżący dysk i katalog dla nowego procesu. Ciąg musi być pełną ścieżką zawierającą literę dysku. Jeśli ten parametr ma wartość NULL, nowy proces będzie miał ten sam bieżący dysk i katalog co proces wywołujący.

Wartość zwracana

Zwraca wartość TRUE w przypadku powodzenia, FALSE w przypadku niepowodzenia.

Uwagi

CreateProcessAsUserCreateProcessAsUser Używa funkcji Win32, aby utworzyć nowy proces uruchamiany w kontekście zabezpieczeń użytkownika reprezentowanego CAccessToken przez obiekt. Zobacz opis funkcji CreateProcessAsUser , aby zapoznać się z pełnym omówieniem wymaganych parametrów.

Aby ta metoda powiodła się, CAccessToken obiekt musi przechowywać token AssignPrimaryToken (chyba że jest to token ograniczony) i uprawnienia IncreaseQuota.

CAccessToken::CreateRestrictedToken

Wywołaj tę metodę, aby utworzyć nowy, ograniczony CAccessToken obiekt.

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

Parametry

pRestrictedToken
Nowy, ograniczony CAccessToken obiekt.

SidsToDisable
CTokenGroups Obiekt określający identyfikatory SID tylko do odmowy.

SidsToRestrict
CTokenGroups Obiekt, który określa ograniczające identyfikatory SID.

UprawnieniaDodelete
CTokenPrivileges Obiekt określający uprawnienia do usunięcia w tokenie z ograniczeniami. Wartość domyślna powoduje utworzenie pustego obiektu.

Wartość zwracana

Zwraca wartość TRUE w przypadku powodzenia, FALSE w przypadku niepowodzenia.

Uwagi

CreateRestrictedTokenużywa funkcji CreateRestrictedToken Win32, aby utworzyć nowy CAccessToken obiekt z ograniczeniami.

Ważne

W przypadku korzystania CreateRestrictedTokenz programu upewnij się, że istniejący token jest prawidłowy (i nie został wprowadzony przez użytkownika), a identyfikator SidsToDisable i PrivilegesToDelete są prawidłowe (i nie zostały wprowadzone przez użytkownika). Jeśli metoda zwraca wartość FALSE, odmawiaj funkcjonalności.

CAccessToken::D etach

Wywołaj tę metodę, aby odwołać własność tokenu dostępu.

HANDLE Detach() throw();

Wartość zwracana

Zwraca uchwyt, który CAccessToken został odłączony.

Uwagi

Ta metoda odwołuje CAccessTokenwłasność tokenu dostępu.

CAccessToken::D isablePrivilege

Wywołaj tę metodę, aby wyłączyć uprawnienia w CAccessToken obiekcie.

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

Parametry

pszPrivilege
Wskaźnik do ciągu zawierającego uprawnienie do wyłączenia w CAccessToken obiekcie.

pPreviousState
Wskaźnik do CTokenPrivileges obiektu, który będzie zawierać poprzedni stan uprawnień.

Wartość zwracana

Zwraca wartość TRUE w przypadku powodzenia, FALSE w przypadku niepowodzenia.

CAccessToken::D isablePrivileges

Wywołaj tę metodę, aby wyłączyć co najmniej jedno uprawnienie w CAccessToken obiekcie.

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

Parametry

rPrivileges
Wskaźnik do tablicy ciągów zawierających uprawnienia do wyłączenia w CAccessToken obiekcie.

pPreviousState
Wskaźnik do CTokenPrivileges obiektu, który będzie zawierać poprzedni stan uprawnień.

Wartość zwracana

Zwraca wartość TRUE w przypadku powodzenia, FALSE w przypadku niepowodzenia.

CAccessToken::EnablePrivilege

Wywołaj tę metodę, aby włączyć uprawnienie w CAccessToken obiekcie .

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

Parametry

pszPrivilege
Wskaźnik do ciągu zawierającego uprawnienie do włączenia CAccessToken w obiekcie.

pPreviousState
Wskaźnik do CTokenPrivileges obiektu, który będzie zawierać poprzedni stan uprawnień.

Wartość zwracana

Zwraca wartość TRUE w przypadku powodzenia, FALSE w przypadku niepowodzenia.

CAccessToken::EnablePrivileges

Wywołaj tę metodę, aby włączyć co najmniej jedno uprawnienie w CAccessToken obiekcie.

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

Parametry

rPrivileges
Wskaźnik do tablicy ciągów zawierających uprawnienia do włączenia CAccessToken w obiekcie.

pPreviousState
Wskaźnik do CTokenPrivileges obiektu, który będzie zawierać poprzedni stan uprawnień.

Wartość zwracana

Zwraca wartość TRUE w przypadku powodzenia, FALSE w przypadku niepowodzenia.

CAccessToken::GetDefaultDacl

Wywołaj tę metodę, aby zwrócić domyślną CAccessToken listę DACL obiektu.

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

Parametry

pDacl
Wskaźnik do obiektu klasy CDacl, który otrzyma CAccessToken domyślną listę DACL obiektu.

Wartość zwracana

Zwraca wartość TRUE, jeśli domyślna lista DACL została odzyskana, w przeciwnym razie wartość FALSE.

CAccessToken::GetEffectiveToken

Wywołaj tę metodę, aby uzyskać CAccessToken obiekt równy tokenowi dostępu dla bieżącego wątku.

bool GetEffectiveToken(DWORD dwDesiredAccess) throw();

Parametry

dwDesiredAccess
Określa maskę dostępu, która określa żądane typy dostępu do tokenu dostępu. Te żądane typy dostępu są porównywane z listą DACL tokenu w celu określenia, które dostępy zostały przyznane lub odrzucone.

Wartość zwracana

Zwraca wartość TRUE w przypadku powodzenia, FALSE w przypadku niepowodzenia.

CAccessToken::GetGroups

Wywołaj tę metodę, aby zwrócić CAccessToken grupy tokenów obiektu.

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

Parametry

Grupy pGroup
Wskaźnik do obiektu klasa CTokenGroups, który będzie otrzymywać informacje o grupie.

Wartość zwracana

Zwraca wartość TRUE w przypadku powodzenia, FALSE w przypadku niepowodzenia.

CAccessToken::GetHandle

Wywołaj tę metodę, aby pobrać uchwyt do tokenu dostępu.

HANDLE GetHandle() const throw();

Wartość zwracana

Zwraca uchwyt do tokenu CAccessToken dostępu obiektu.

CAccessToken::GetImpersonationLevel

Wywołaj tę metodę, aby uzyskać poziom personifikacji z tokenu dostępu.

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

Parametry

pImpersonationLevel
Wskaźnik do typu wyliczenia SECURITY_IMPERSONATION_LEVEL , który będzie otrzymywać informacje o poziomie personifikacji.

Wartość zwracana

Zwraca wartość TRUE w przypadku powodzenia, FALSE w przypadku niepowodzenia.

CAccessToken::GetLogonSessionId

Wywołaj tę metodę, aby uzyskać identyfikator sesji logowania skojarzony z obiektem CAccessToken .

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

Parametry

pluid
Wskaźnik do identyfikatora LUID , który otrzyma identyfikator sesji logowania.

Wartość zwracana

Zwraca wartość TRUE w przypadku powodzenia, FALSE w przypadku niepowodzenia.

Uwagi

W kompilacjach debugowania wystąpi błąd asercji, jeśli pluid jest nieprawidłową wartością.

CAccessToken::GetLogonSid

Wywołaj tę metodę, aby uzyskać identyfikator SID logowania skojarzony z obiektem CAccessToken .

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

Parametry

pSid
Wskaźnik do obiektu klasy CSid.

Wartość zwracana

Zwraca wartość TRUE w przypadku powodzenia, FALSE w przypadku niepowodzenia.

Uwagi

W kompilacjach debugowania wystąpi błąd asercji, jeśli pSid jest nieprawidłową wartością.

CAccessToken::GetOwner

Wywołaj tę metodę, aby uzyskać właściciela skojarzonego z obiektem CAccessToken .

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

Parametry

pSid
Wskaźnik do obiektu klasy CSid.

Wartość zwracana

Zwraca wartość TRUE w przypadku powodzenia, FALSE w przypadku niepowodzenia.

Uwagi

Właściciel jest domyślnie ustawiany na wszystkich obiektach utworzonych, gdy ten token dostępu jest w mocy.

CAccessToken::GetPrimaryGroup

Wywołaj tę metodę, aby pobrać grupę podstawową skojarzą z obiektem CAccessToken .

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

Parametry

pSid
Wskaźnik do obiektu klasy CSid.

Wartość zwracana

Zwraca wartość TRUE w przypadku powodzenia, FALSE w przypadku niepowodzenia.

Uwagi

Grupa jest domyślnie ustawiana na wszystkich obiektach utworzonych podczas efektu tego tokenu dostępu.

CAccessToken::GetPrivileges

Wywołaj tę metodę, aby uzyskać uprawnienia skojarzone z obiektem CAccessToken .

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

Parametry

pPrivileges
Wskaźnik do obiektu klasy CTokenPrivileges, który otrzyma uprawnienia.

Wartość zwracana

Zwraca wartość TRUE w przypadku powodzenia, FALSE w przypadku niepowodzenia.

CAccessToken::GetProcessToken

Wywołaj tę metodę, aby zainicjować CAccessToken token dostępu z danego procesu.

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

Parametry

dwDesiredAccess
Określa maskę dostępu, która określa żądane typy dostępu do tokenu dostępu. Te żądane typy dostępu są porównywane z listą DACL tokenu w celu określenia, które dostępy zostały przyznane lub odrzucone.

hProcess
Obsługa procesu, którego token dostępu jest otwarty. Jeśli jest używana domyślna wartość NULL, używany jest bieżący proces.

Wartość zwracana

Zwraca wartość TRUE w przypadku powodzenia, FALSE w przypadku niepowodzenia.

Uwagi

Wywołuje funkcję OpenProcessToken Win32.

CAccessToken::GetProfile

Wywołaj tę metodę, aby uzyskać dojście wskazujące profil użytkownika skojarzony z obiektem CAccessToken .

HANDLE GetProfile() const throw();

Wartość zwracana

Zwraca uchwyt wskazujący profil użytkownika lub wartość NULL, jeśli profil nie istnieje.

CAccessToken::GetSource

Wywołaj tę metodę, aby pobrać źródło CAccessToken obiektu.

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

Parametry

pSource
Wskaźnik do struktury TOKEN_SOURCE .

Wartość zwracana

Zwraca wartość TRUE w przypadku powodzenia, FALSE w przypadku niepowodzenia.

CAccessToken::GetStatistics

Wywołaj tę metodę, aby uzyskać informacje skojarzone z obiektem CAccessToken .

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

Parametry

statystyki pStatistics
Wskaźnik do struktury TOKEN_STATISTICS .

Wartość zwracana

Zwraca wartość TRUE w przypadku powodzenia, FALSE w przypadku niepowodzenia.

CAccessToken::GetTerminalServicesSessionId

Wywołaj tę metodę, aby uzyskać identyfikator sesji usług terminalowych skojarzony z obiektem CAccessToken .

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

Parametry

pdwSessionId
Identyfikator sesji usług terminalowych.

Wartość zwracana

Zwraca wartość TRUE w przypadku powodzenia, FALSE w przypadku niepowodzenia.

CAccessToken::GetThreadToken

Wywołaj tę metodę, aby zainicjować CAccessToken token z danego wątku.

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

Parametry

dwDesiredAccess
Określa maskę dostępu, która określa żądane typy dostępu do tokenu dostępu. Te żądane typy dostępu są porównywane z listą DACL tokenu w celu określenia, które dostępy zostały przyznane lub odrzucone.

hThread
Dojście do wątku, którego token dostępu jest otwarty.

bOpenAsSelf
Wskazuje, czy sprawdzanie dostępu ma zostać wykonane względem kontekstu zabezpieczeń wątku wywołującego GetThreadToken metodę, czy kontekstu zabezpieczeń procesu dla wątku wywołującego.

Jeśli ten parametr ma wartość FALSE, sprawdzanie dostępu jest wykonywane przy użyciu kontekstu zabezpieczeń dla wątku wywołującego. Jeśli wątek personifikuje klienta, może to być kontekst zabezpieczeń procesu klienta. Jeśli ten parametr ma wartość TRUE, sprawdzanie dostępu jest wykonywane przy użyciu kontekstu zabezpieczeń procesu dla wątku wywołującego.

Wartość zwracana

Zwraca wartość TRUE w przypadku powodzenia, FALSE w przypadku niepowodzenia.

CAccessToken::GetTokenId

Wywołaj tę metodę, aby uzyskać identyfikator tokenu skojarzony z obiektem CAccessToken .

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

Parametry

pluid
Wskaźnik do identyfikatora LUID , który otrzyma identyfikator tokenu.

Wartość zwracana

Zwraca wartość TRUE w przypadku powodzenia, FALSE w przypadku niepowodzenia.

CAccessToken::GetType

Wywołaj tę metodę, aby uzyskać typ tokenu CAccessToken obiektu.

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

Parametry

typ pType
Adres zmiennej TOKEN_TYPE , która po powodzeniu otrzymuje typ tokenu.

Wartość zwracana

Zwraca wartość TRUE w przypadku powodzenia, FALSE w przypadku niepowodzenia.

Uwagi

Typ wyliczania TOKEN_TYPE zawiera wartości, które rozróżniają token podstawowy i token personifikacji.

CAccessToken::GetUser

Wywołaj tę metodę, aby zidentyfikować użytkownika skojarzonego z obiektem CAccessToken .

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

Parametry

pSid
Wskaźnik do obiektu klasy CSid.

Wartość zwracana

Zwraca wartość TRUE w przypadku powodzenia, FALSE w przypadku niepowodzenia.

CAccessToken::HKeyCurrentUser

Wywołaj tę metodę, aby uzyskać dojście wskazujące profil użytkownika skojarzony z obiektem CAccessToken .

HKEY HKeyCurrentUser() const throw();

Wartość zwracana

Zwraca uchwyt wskazujący profil użytkownika lub wartość NULL, jeśli profil nie istnieje.

CAccessToken::Personifikuj

Wywołaj tę metodę, aby przypisać personifikację CAccessToken do wątku.

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

Parametry

hThread
Dojmij do wątku, aby przypisać token personifikacji do. Ten dojście musi zostać otwarty z prawami dostępu TOKEN_IMPERSONATE. Jeśli wartość hThread ma wartość NULL, metoda powoduje, że wątek przestanie używać tokenu personifikacji.

Wartość zwracana

Zwraca wartość TRUE w przypadku powodzenia, FALSE w przypadku niepowodzenia.

Uwagi

W kompilacjach debugowania wystąpi błąd asercji, jeśli CAccessToken nie ma prawidłowego wskaźnika do tokenu.

Klasa CAutoRevertImpersonation może służyć do automatycznego przywracania personifikowanych tokenów dostępu.

CAccessToken::ImpersonateLoggedOnUser

Wywołaj tę metodę, aby umożliwić wywołaniu wątku personifikację kontekstu zabezpieczeń zalogowanego użytkownika.

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

Wartość zwracana

Zwraca wartość TRUE w przypadku powodzenia, FALSE w przypadku niepowodzenia.

Uwagi

Ważne

Jeśli wywołanie funkcji personifikacji nie powiedzie się z jakiegokolwiek powodu, klient nie jest personifikowany, a żądanie klienta jest wykonywane w kontekście zabezpieczeń procesu, z którego wykonano wywołanie. Jeśli proces jest uruchomiony jako wysoce uprzywilejowane konto lub jako członek grupy administracyjnej, użytkownik może mieć możliwość wykonywania akcji, które w przeciwnym razie byłyby niedozwolone. W związku z tym należy zawsze potwierdzić wartość zwracaną dla tej funkcji.

CAccessToken::IsTokenRestricted

Wywołaj tę metodę, aby sprawdzić, czy CAccessToken obiekt zawiera listę ograniczonych identyfikatorów SID.

bool IsTokenRestricted() const throw();

Wartość zwracana

Zwraca wartość TRUE, jeśli obiekt zawiera listę ograniczeń identyfikatorów SID, wartość FALSE, jeśli nie ma żadnych ograniczeń identyfikatorów SID lub jeśli metoda zakończy się niepowodzeniem.

CAccessToken::LoadUserProfile

Wywołaj tę metodę, aby załadować profil użytkownika skojarzony z obiektem CAccessToken .

bool LoadUserProfile() throw(...);

Wartość zwracana

Zwraca wartość TRUE w przypadku powodzenia, FALSE w przypadku niepowodzenia.

Uwagi

W kompilacjach debugowania wystąpi błąd asercji, jeśli CAccessToken nie zawiera prawidłowego tokenu lub jeśli profil użytkownika już istnieje.

CAccessToken::LogonUser

Wywołaj tę metodę, aby utworzyć sesję logowania dla użytkownika skojarzonego z podanymi poświadczeniami.

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

Parametry

pszUserName
Wskaźnik do ciągu zakończonego wartości null, który określa nazwę użytkownika. Jest to nazwa konta użytkownika do zalogowania się.

pszDomain
Wskaźnik do ciągu zakończonego wartością null, który określa nazwę domeny lub serwera, którego baza danych kont zawiera konto pszUserName .

pszPassword
Wskaźnik do ciągu zakończonego wartością null, który określa hasło w postaci zwykłego tekstu dla konta użytkownika określonego przez wartość pszUserName.

dwLogonType
Określa typ operacji logowania do wykonania. Aby uzyskać więcej informacji, zobacz LogonUser .

dwLogonProvider
Określa dostawcę logowania. Aby uzyskać więcej informacji, zobacz LogonUser .

Wartość zwracana

Zwraca wartość TRUE w przypadku powodzenia, FALSE w przypadku niepowodzenia.

Uwagi

Token dostępu uzyskany z logowania zostanie skojarzony z elementem CAccessToken. Aby ta metoda powiodła się, CAccessToken obiekt musi przechowywać SE_TCB_NAME uprawnień, identyfikując właściciela w ramach zaufanej bazy komputerów. Aby uzyskać więcej informacji na temat wymaganych uprawnień, zobacz LogonUser .

CAccessToken::OpenCOMClientToken

Wywołaj tę metodę z poziomu serwera COM obsługującego wywołanie od klienta, aby zainicjować CAccessToken token dostępu z klienta COM.

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

Parametry

dwDesiredAccess
Określa maskę dostępu, która określa żądane typy dostępu do tokenu dostępu. Te żądane typy dostępu są porównywane z listą DACL tokenu w celu określenia, które dostępy zostały przyznane lub odrzucone.

bImpersonate
Jeśli wartość TRUE, bieżący wątek będzie personifikować wywołującego klienta COM, jeśli to wywołanie zakończy się pomyślnie. Jeśli wartość FALSE, token dostępu zostanie otwarty, ale wątek nie będzie miał tokenu personifikacji po zakończeniu tego wywołania.

bOpenAsSelf
Wskazuje, czy sprawdzanie dostępu ma zostać wykonane w kontekście zabezpieczeń wątku wywołującego metodę GetThreadToken , czy też w kontekście zabezpieczeń procesu wywołującego wątku.

Jeśli ten parametr ma wartość FALSE, sprawdzanie dostępu jest wykonywane przy użyciu kontekstu zabezpieczeń dla wątku wywołującego. Jeśli wątek personifikuje klienta, może to być kontekst zabezpieczeń procesu klienta. Jeśli ten parametr ma wartość TRUE, sprawdzanie dostępu jest wykonywane przy użyciu kontekstu zabezpieczeń procesu dla wątku wywołującego.

Wartość zwracana

Zwraca wartość TRUE w przypadku powodzenia, FALSE w przypadku niepowodzenia.

Uwagi

Klasa CAutoRevertImpersonation może służyć do automatycznego przywracania personifikowanych tokenów dostępu utworzonych przez ustawienie flagi bImpersonate na true.

CAccessToken::OpenNamedPipeClientToken

Wywołaj tę metodę z poziomu serwera, który odbiera żądania za pośrednictwem nazwanego potoku, aby zainicjować CAccessToken token dostępu z klienta.

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

Parametry

hPipe
Dojście do nazwanego potoku.

dwDesiredAccess
Określa maskę dostępu, która określa żądane typy dostępu do tokenu dostępu. Te żądane typy dostępu są porównywane z listą DACL tokenu w celu określenia, które dostępy zostały przyznane lub odrzucone.

bImpersonate
Jeśli wartość TRUE, bieżący wątek będzie personifikować klienta potoku wywołującego, jeśli to wywołanie zakończy się pomyślnie. Jeśli wartość FALSE, token dostępu zostanie otwarty, ale wątek nie będzie miał tokenu personifikacji po zakończeniu tego wywołania.

bOpenAsSelf
Wskazuje, czy sprawdzanie dostępu ma zostać wykonane w kontekście zabezpieczeń wątku wywołującego metodę GetThreadToken , czy też w kontekście zabezpieczeń procesu wywołującego wątku.

Jeśli ten parametr ma wartość FALSE, sprawdzanie dostępu jest wykonywane przy użyciu kontekstu zabezpieczeń dla wątku wywołującego. Jeśli wątek personifikuje klienta, może to być kontekst zabezpieczeń procesu klienta. Jeśli ten parametr ma wartość TRUE, sprawdzanie dostępu jest wykonywane przy użyciu kontekstu zabezpieczeń procesu dla wątku wywołującego.

Wartość zwracana

Zwraca wartość TRUE w przypadku powodzenia, FALSE w przypadku niepowodzenia.

Uwagi

Klasa CAutoRevertImpersonation może służyć do automatycznego przywracania personifikowanych tokenów dostępu utworzonych przez ustawienie flagi bImpersonate na true.

CAccessToken::OpenRPCClientToken

Wywołaj tę metodę z poziomu serwera obsługującego wywołanie z klienta RPC, aby zainicjować CAccessToken token dostępu z klienta.

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

Parametry

BindingHandle
Powiązanie dojścia na serwerze, który reprezentuje powiązanie z klientem.

dwDesiredAccess
Określa maskę dostępu, która określa żądane typy dostępu do tokenu dostępu. Te żądane typy dostępu są porównywane z listą DACL tokenu w celu określenia, które dostępy zostały przyznane lub odrzucone.

bImpersonate
Jeśli wartość TRUE, bieżący wątek będzie personifikować wywołującego klienta RPC, jeśli to wywołanie zakończy się pomyślnie. Jeśli wartość FALSE, token dostępu zostanie otwarty, ale wątek nie będzie miał tokenu personifikacji po zakończeniu tego wywołania.

bOpenAsSelf
Wskazuje, czy sprawdzanie dostępu ma zostać wykonane w kontekście zabezpieczeń wątku wywołującego metodę GetThreadToken , czy też w kontekście zabezpieczeń procesu wywołującego wątku.

Jeśli ten parametr ma wartość FALSE, sprawdzanie dostępu jest wykonywane przy użyciu kontekstu zabezpieczeń dla wątku wywołującego. Jeśli wątek personifikuje klienta, może to być kontekst zabezpieczeń procesu klienta. Jeśli ten parametr ma wartość TRUE, sprawdzanie dostępu jest wykonywane przy użyciu kontekstu zabezpieczeń procesu dla wątku wywołującego.

Wartość zwracana

Zwraca wartość TRUE w przypadku powodzenia, FALSE w przypadku niepowodzenia.

Uwagi

Klasa CAutoRevertImpersonation może służyć do automatycznego przywracania personifikowanych tokenów dostępu utworzonych przez ustawienie flagi bImpersonate na true.

CAccessToken::OpenThreadToken

Wywołaj tę metodę, aby ustawić poziom personifikacji, a następnie zainicjować CAccessToken element za pomocą tokenu z danego wątku.

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

Parametry

dwDesiredAccess
Określa maskę dostępu, która określa żądane typy dostępu do tokenu dostępu. Te żądane typy dostępu są porównywane z listą DACL tokenu w celu określenia, które dostępy zostały przyznane lub odrzucone.

bImpersonate
Jeśli wartość TRUE, wątek zostanie pozostawiony na żądanym poziomie personifikacji po zakończeniu tej metody. Jeśli wartość FALSE, wątek powróci do pierwotnego poziomu personifikacji.

bOpenAsSelf
Wskazuje, czy sprawdzanie dostępu ma zostać wykonane w kontekście zabezpieczeń wątku wywołującego metodę GetThreadToken , czy też w kontekście zabezpieczeń procesu wywołującego wątku.

Jeśli ten parametr ma wartość FALSE, sprawdzanie dostępu jest wykonywane przy użyciu kontekstu zabezpieczeń dla wątku wywołującego. Jeśli wątek personifikuje klienta, może to być kontekst zabezpieczeń procesu klienta. Jeśli ten parametr ma wartość TRUE, sprawdzanie dostępu jest wykonywane przy użyciu kontekstu zabezpieczeń procesu dla wątku wywołującego.

Sil
Określa typ SECURITY_IMPERSONATION_LEVEL wyliczany, który dostarcza poziom personifikacji tokenu.

Wartość zwracana

Zwraca wartość TRUE w przypadku powodzenia, FALSE w przypadku niepowodzenia.

Uwagi

OpenThreadToken jest podobny do CAccessToken::GetThreadToken, ale ustawia poziom personifikacji przed zainicjowaniem CAccessToken tokenu dostępu wątku.

Klasa CAutoRevertImpersonation może służyć do automatycznego przywracania personifikowanych tokenów dostępu utworzonych przez ustawienie flagi bImpersonate na true.

CAccessToken::P rivilegeCheck

Wywołaj tę metodę, aby określić, czy określony zestaw uprawnień jest włączony w CAccessToken obiekcie.

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

Parametry

RequiredPrivileges
Wskaźnik do struktury PRIVILEGE_SET .

pbResult
Wskaźnik do wartości ustawia metod, aby wskazać, czy dowolny lub wszystkie określone uprawnienia są włączone w CAccessToken obiekcie.

Wartość zwracana

Zwraca wartość TRUE w przypadku powodzenia, FALSE w przypadku niepowodzenia.

Uwagi

Po PrivilegeCheck powrocie element Attributes członkowski każdej struktury LUID_AND_ATTRIBUTES jest ustawiony na SE_PRIVILEGE_USED_FOR_ACCESS, jeśli odpowiednie uprawnienia są włączone. Ta metoda wywołuje funkcję PrivilegeCheck Win32.

CAccessToken::Revert

Wywołaj tę metodę, aby zatrzymać wątek przy użyciu tokenu personifikacji.

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

Parametry

hThread
Dojście do wątku w celu odwrócenia od personifikacji. Jeśli wartość hThread ma wartość NULL, przyjmuje się bieżący wątek.

Wartość zwracana

Zwraca wartość TRUE w przypadku powodzenia, FALSE w przypadku niepowodzenia.

Uwagi

Zmiana wersji tokenów personifikacji może być wykonywana automatycznie za pomocą klasy CAutoRevertImpersonation.

CAccessToken::SetDefaultDacl

Wywołaj tę metodę, aby ustawić domyślną listę DACL CAccessToken obiektu.

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

Parametry

rDacl
Nowe domyślne informacje o klasie CDacl.

Wartość zwracana

Zwraca wartość TRUE w przypadku powodzenia, FALSE w przypadku niepowodzenia.

Uwagi

Domyślną listą DACL jest lista DACL używana domyślnie podczas tworzenia nowych obiektów z tym tokenem dostępu.

CAccessToken::SetOwner

Wywołaj tę metodę, aby ustawić właściciela CAccessToken obiektu.

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

Parametry

rSid
Obiekt klasy CSid zawierający informacje o właścicielu.

Wartość zwracana

Zwraca wartość TRUE w przypadku powodzenia, FALSE w przypadku niepowodzenia.

Uwagi

Właściciel jest domyślnym właścicielem, który jest używany dla nowych obiektów utworzonych podczas stosowania tego tokenu dostępu.

CAccessToken::SetPrimaryGroup

Wywołaj tę metodę, aby ustawić grupę podstawową CAccessToken obiektu.

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

Parametry

rSid
Obiekt klasy CSid zawierający informacje o grupie podstawowej.

Wartość zwracana

Zwraca wartość TRUE w przypadku powodzenia, FALSE w przypadku niepowodzenia.

Uwagi

Grupa podstawowa jest domyślną grupą dla nowych obiektów utworzonych podczas efektu tego tokenu dostępu.

Zobacz też

Przykład ATLSecurity
Tokeny dostępu
Omówienie klasy