Interrogation d’un contexte client
Les applications peuvent appeler la fonction AuthzGetInformationFromContext pour interroger des informations sur un contexte client existant.
Le paramètre InfoClass de la fonction AuthzGetInformationFromContext prend une valeur de l’énumération AUTHZ_CONTEXT_INFORMATION_CLASS qui spécifie le type d’informations que la fonction interroge.
Les variables d’attribut de sécurité doivent être présentes dans le contexte client si elles sont mentionnées dans une expression conditionnelle ; sinon, le terme d’expression conditionnelle qui les référence sera évalué comme inconnu. Pour plus d’informations sur les expressions conditionnelles, consultez la rubrique Security Descriptor Definition Language for Conditional ACEs .
Exemple
L’exemple suivant interroge le contexte client créé dans l’exemple d’Initialisation d’un contexte client pour récupérer la liste des SID de groupes associés à ce contexte client.
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;
}
Rubriques connexes
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour