Funzione LookupAccountSidA (winbase.h)

La funzione LookupAccountSid accetta un ID di sicurezza (SID) come input. Recupera il nome dell'account per questo SID e il nome del primo dominio in cui viene trovato questo SID.

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 una stringa di caratteri con terminazione Null che specifica il computer di destinazione. Questa stringa può essere il nome di un computer remoto. Se questo parametro è NULL, la traduzione 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 da cercare.

[out, optional] Name

Puntatore a un buffer che riceve una stringa con terminazione Null contenente il nome dell'account corrispondente al parametro lpSid .

[in, out] cchName

In input, specifica le dimensioni, in TCHARs, del buffer lpName . Se la funzione ha esito negativo perché il buffer è troppo piccolo o se cchName è zero, cchName riceve le dimensioni del buffer necessarie, incluso il carattere null di terminazione.

[out, optional] ReferencedDomainName

Puntatore a un buffer che riceve una stringa con terminazione Null 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 il quale 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 TCHARs, del buffer lpReferencedDomainName . Se la funzione ha esito negativo perché il buffer è troppo piccolo o se cchReferencedDomainName è zero, cchReferencedDomainName riceve le dimensioni del buffer necessarie, incluso il carattere Null di terminazione.

[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 informazioni dettagliate sull'errore, chiamare GetLastError.

Commenti

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 locale 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.

Esempio

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 che non è indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzioni.

Requisiti

Requisito Valore
Client minimo supportato Windows XP [app desktop | App UWP]
Server minimo supportato Windows Server 2003 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione winbase.h (include Windows.h)
Libreria Advapi32.lib
DLL Advapi32.dll

Vedi anche

Panoramica di Controllo di accesso

Funzioni Controllo di accesso di base

EqualPrefixSid

Lookupaccountname

SID

SID_NAME_USE