Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?
Hasło nie zostało zweryfikowane
Niniejsze hasło zostało opracowane, jednak nie zostało ono zweryfikowane przez administrację serwisu. Jeżeli znalazłeś błędy merytoryczne w niniejszym dokumencie, prosimy o ich zgłoszenie na forum w dziale Znalezione błędy.
Opracował: jankowalski25
Biblioteki C/C++

AccessCheck

[funkcja] Określa, czy deskryptor zabezpieczeń zapewnia dostęp dla klienta określanego przez token dostępu.

Składnia

C/C++
#include <windows.h>

BOOL WINAPI AccessCheck(
PSECURITY_DESCRIPTOR pSecurityDescriptor,
HANDLE ClientToken,
DWORD DesiredAccess,
PGENERIC_MAPPING GenericMapping,
PPRIVILEGE_SET PrivilegeSet,
LPDWORD PrivilegeSetLength,
LPDWORD GrantedAccess,
LPBOOL AccessStatus
);

Argumenty

ArgumentOpis
pSecurityDescriptorWskaźnik do struktury » WinAPISECURITY_DESCRIPTOR określającej, jaki typ dostępu jest sprawdzany.
ClientTokenUchwyt do impersonowanego tokenu, który określa klienta uzyskującego dostęp. Uchwyt musi mieć dostęp TOKEN_QUERY, inaczej funkcja zwróci wartość ERROR_ACCESS_DENIED.
DesiredAccessMaska dostępu określająca uprawnienia do sprawdzenia. Taka maska musi być mapowana przez funkcję MapGenericMask. Jeśli wartość tego argumentu wynosi MAXIMUM_ALLOWED, funkcja ustawia maskę dostępu w argumencie GrantedAccess w celu udostępnienia maksymalnych możliwych uprawnień zawartych w deskryptorze zabezpieczeń dla klienta.
GenericMappingWskaźnik do struktury GENERIC_MAPPING powiązanej z obiektem, dla którego jest sprawdzany dostęp.
PrivilegeSetWskaźnik do struktury PRIVILEGE_SET pobierającej przywileje używane do uzyskania dostępu. Jeśli żadne przywileje nie są używane, funkcja ustawia wartość składowej PrivilegeCoun na zero.
PrivilegeSetLengthOkreśla rozmiar bufora wskazywanego przez wartość argumentu PrivilegeSet (w bajtach).
GrantedAccessWskaźnik do maski dostępu pobierającej uprawnienia. Jeśli wartość argumentu AccessStatus jest ustawiona na FALSE, funkcja ustawia maskę dostępu na zero. Jeśli funkcja zakończy się niepowodzeniem, to nie ustawia maski dostępu.
AccessStatusWskaźnik do zmiennej pobierającej wynik sprawdzenia dostępu. Jeśli deskryptor zabezpieczeń pozwala na żądanie uprawnień dostępu do klienta określanego przez token dostępu, wartość tego argumentu jest ustawiana na TRUE, w przeciwnym wypadku FALSE i wtedy należy wywołać funkcję » WinAPIGetLastError w celu uzyskania dodatkowych informacji o błędach.

Zwracana wartość

Jeśli funkcja zakończy się bez błędów, zwracana wartość jest niezerowa. Jeśli wystąpią błędy, zwracaną wartością jest zero. Aby uzyskać dodatkowe informacje o błędach, należy wywołać funkcję » WinAPIGetLastError.

Dodatkowe informacje

Najczęściej programy serwera używają tej funkcji do sprawdzenia dostępu do prywatnego obiektu. Funkcja porównuje określony deskryptor zabezpieczeń z tokenem dostępu i ustawia wartość argumentu AccessStatus, która określa wynik wywołania funkcji. Jeśli dostęp jest przyznawany, żądana maska dostępu staje się prawidłową maską dostępu do tego obiektu. Jeśli wartość DACL deskryptora zabezpieczeń jest ustawiona na NULL, wartośc argumentu AccessStatus jest ustawiana na TRUE, co powoduje uzyskanie dostępu do obiektu przez klienta. Funkcja kończy się niepowodzeniem i zwraca wartość ERROR_INVALID_SECURITY_DESCR jeśli deskryptor zabezpieczeń nie zawiera praw własności lub grup SID.
Funkcja nie tworzy audytu. Jeśli program korzysta z audytów w celu sprawdzenia dostępu, należy wywołać jedną z poniższych funkcji:
  • AccessCheckAndAuditAlarm
  • AccessCheckByTypeAndAuditAlarm
  • AccessCheckByTypeResultListAndAuditAlarm
  • AccessCheckByTypeResultListAndAuditAlarmByHandle

Wymagania

Minimalny system klientaWindows XP (tylko aplikacje biurowe).
Minimalny system serweraWindows Server 2003 (tylko aplikacje biurowe).
NagłówekWinBase.h (dołącza Windows.h).
BibliotekaAdvapi32.lib
DLLAdvapi32.dll

Linki zewnętrzne