Funzione LookupAccountSidA (winbase.h)
La funzione LookupAccountSid
Sintassi
BOOL LookupAccountSidA(
[in, optional] LPCSTR lpSystemName,
[in] PSID Sid,
[out, optional] LPSTR Name,
[in, out] LPDWORD cchName,
[out, optional] LPSTR ReferencedDomainName,
[in, out] LPDWORD cchReferencedDomainName,
[out] PSID_NAME_USE peUse
);
Parametri
[in, optional] lpSystemName
Puntatore a un nullstringa di caratteri con terminazione che specifica il computer di destinazione. Questa stringa può essere il nome di un computer remoto. Se questo parametro è NULL, la conversione del nome dell'account inizia nel sistema locale. Se il nome non può essere risolto nel sistema locale, questa funzione tenterà di risolvere il nome usando controller di dominio attendibili dal sistema locale. In genere, specificare un valore per lpSystemName solo quando l'account si trova in un dominio non attendibile e il nome di un computer in tale dominio è noto.
[in] Sid
Puntatore al SID
[out, optional] Name
Puntatore a un buffer che riceve un nullstringa con terminazione contenente il nome dell'account corrispondente al parametro lpSid.
[in, out] cchName
In caso di input, specifica le dimensioni, in
[out, optional] ReferencedDomainName
Puntatore a un buffer che riceve un nullstringa con terminazione contenente il nome del dominio in cui è stato trovato il nome dell'account.
In un server, il nome di dominio restituito per la maggior parte degli account nel database di sicurezza del computer locale è il nome del dominio per cui il server è un controller di dominio.
In una workstation, il nome di dominio restituito per la maggior parte degli account nel database di sicurezza del computer locale è il nome del computer a partire dall'ultimo avvio del sistema (le barre rovesciate sono escluse). Se il nome del computer cambia, il nome precedente continua a essere restituito come nome di dominio fino al riavvio del sistema.
Alcuni account sono predefiniti dal sistema. Il nome di dominio restituito per questi account è BUILTIN.
[in, out] cchReferencedDomainName
In input, specifica le dimensioni, in
[out] peUse
Puntatore a una variabile che riceve un valore SID_NAME_USE che indica il tipo di account.
Valore restituito
Se la funzione ha esito positivo, la funzione restituisce un valore diverso da zero.
Se la funzione ha esito negativo, restituisce zero. Per ottenere informazioni estese sull'errore, chiamare GetLastError.
Osservazioni
La funzione LookupAccountSid tenta di trovare un nome per il SID specificato controllando prima un elenco di SID noti. Se il SID fornito non corrisponde a un SID noto, la funzione controlla gli account locali predefiniti e definiti in modo amministrativo. Successivamente, la funzione controlla il dominio primario. gli identificatori di sicurezza non riconosciuti dal dominio primario vengono controllati rispetto ai domini attendibili che corrispondono ai prefissi SID.
Se la funzione non riesce a trovare un nome di account per il SID, GetLastError restituisce ERROR_NONE_MAPPED. Ciò può verificarsi se un timeout di rete impedisce alla funzione di trovare il nome. Si verifica anche per i SID che non hanno un nome di account corrispondente, ad esempio un SID di accesso che identifica una sessione di accesso .
Oltre a cercare i SID per gli account locali, gli account di dominio locali e gli account di dominio esplicitamente attendibili, LookupAccountSid può cercare i SID per qualsiasi account in qualsiasi dominio della foresta, inclusi i SID che vengono visualizzati solo nel campo SIDhistory di un account nella foresta. Il campo SIDhistory archivia i SID precedenti di un account spostato da un altro dominio. Per cercare un SID, LookupAccountSid esegue una query sul catalogo globale della foresta.
Esempi
Per un esempio che usa questa funzione, vedere Ricerca di un SID in un token di accesso.
Nota
L'intestazione winbase.h definisce LookupAccountSid come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows XP [app desktop | App UWP] |
server minimo supportato | Windows Server 2003 [app desktop | App UWP] |
piattaforma di destinazione | Finestre |
intestazione |
winbase.h (include Windows.h) |
libreria |
Advapi32.lib |
dll | Advapi32.dll |
Vedere anche
Panoramica del controllo di accesso