Abfragen eines Clientkontexts
Anwendungen können die Funktion AuthzGetInformationFromContext aufrufen, um Informationen zu einem vorhandenen Clientkontext abzufragen.
Der InfoClass-Parameter der AuthzGetInformationFromContext-Funktion verwendet einen Wert aus der AUTHZ_CONTEXT_INFORMATION_CLASS Enumeration, die angibt, welche Art von Informationen die Funktionsabfragen angibt.
Sicherheitsattributevariablen müssen im Clientkontext vorhanden sein, wenn in einem bedingten Ausdruck verwiesen wird; andernfalls wird der bedingte Ausdruck, der auf sie verweist, als unbekannt ausgewertet. Weitere Informationen zu bedingten Ausdrücken finden Sie im Thema "Security Descriptor Definition Language for Conditional ACEs ".
Beispiel
Im folgenden Beispiel wird der im Beispiel erstellte Clientkontext von der Initialisierung eines Clientkontexts abgefragt, um die Liste der SIDs von Gruppen abzurufen, die diesem Clientkontext zugeordnet sind.
BOOL GetGroupsFromContext(AUTHZ_CLIENT_CONTEXT_HANDLE hClientContext)
{
DWORD cbSize = 0;
PTOKEN_GROUPS pTokenGroups=NULL;
LPTSTR StringSid = NULL;
BOOL bResult = FALSE;
int i = 0;
//Call the AuthzGetInformationFromContext function with a NULL output buffer to get the required buffer size.
AuthzGetInformationFromContext(hClientContext, AuthzContextInfoGroupsSids, 0, &cbSize, NULL);
//Allocate the buffer for the TOKEN_GROUPS structure.
pTokenGroups = (PTOKEN_GROUPS)malloc(cbSize);
if (!pTokenGroups)
return FALSE;
//Get the SIDs of groups associated with the client context.
if(!AuthzGetInformationFromContext(hClientContext, AuthzContextInfoGroupsSids, cbSize, &cbSize, pTokenGroups))
{
printf_s("AuthzGetInformationFromContext failed with %d\n", GetLastError);
free(pTokenGroups);
return FALSE;
}
//Enumerate and display the group SIDs.
for (i=pTokenGroups->GroupCount-1; i >= 0; --i)
{
//Convert a SID to a string.
if(!ConvertSidToStringSid(
pTokenGroups->Groups[i].Sid,
&StringSid
))
{
LocalFree(StringSid);
return FALSE;
}
wprintf_s(L"%s \n", StringSid);
}
free(pTokenGroups);
return TRUE;
}
Zugehörige Themen