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
Elementy członkowskie
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
alfons
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
CreateProcessAsUser
CreateProcessAsUser
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
CreateRestrictedToken
używa funkcji CreateRestrictedToken Win32, aby utworzyć nowy CAccessToken
obiekt z ograniczeniami.
Ważne
W przypadku korzystania CreateRestrictedToken
z 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 CAccessToken
wł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.