Funzione LsaStorePrivateData (ntsecapi.h)

Non usare le funzioni dati private LSA o la crittografia dei dati generica e la decrittografia. Usare invece le funzioni CryptProtectData e CryptUnprotectData . Usare le funzioni dati private LSA solo quando è necessario modificare i segreti LSA come documentato in Secret Object Data Model

Sintassi

NTSTATUS LsaStorePrivateData(
  [in] LSA_HANDLE          PolicyHandle,
  [in] PLSA_UNICODE_STRING KeyName,
  [in] PLSA_UNICODE_STRING PrivateData
);

Parametri

[in] PolicyHandle

Handle per un oggetto Policy . L'handle deve avere il diritto di accesso POLICY_CREATE_SECRET se si tratta della prima volta che i dati vengono archiviati nella chiave specificata dal parametro KeyName . Per altre informazioni, vedere Apertura di un handle oggetto Criteri.

[in] KeyName

Puntatore a una struttura LSA_UNICODE_STRING contenente il nome della chiave in cui vengono archiviati i dati privati.

[in] PrivateData

Puntatore a una struttura LSA_UNICODE_STRING contenente i dati privati da archiviare. La funzione crittografa questi dati prima di archiviarli.

Se questo parametro è NULL, la funzione elimina tutti i dati privati archiviati nella chiave ed elimina la chiave. I tentativi successivi di recuperare dati dalla chiave restituiranno il codice di errore STATUS_OBJECT_NAME_NOT_FOUND.

Valore restituito

Se la funzione ha esito positivo, il valore restituito viene STATUS_SUCCESS.

Se la funzione ha esito negativo, il valore restituito è un codice NTSTATUS. Per altre informazioni, vedere Valori restituiti della funzione criteri LSA.

È possibile utilizzare la funzione LsaNtStatusToWinError per convertire il codice NTSTATUS in un codice di errore di Windows.

Commenti

La funzione LsaStorePrivateData può essere usata dalle applicazioni server per archiviare password client e computer.

Come descritto in Private Data Object, gli oggetti dati privati includono tre tipi specializzati: locale, globale e computer. Gli oggetti specializzati sono identificati da un prefisso nel nome della chiave: "L$" per gli oggetti locali, "G$" per gli oggetti globali e "M$" per gli oggetti computer. Non è possibile accedere agli oggetti locali in remoto. Gli oggetti computer possono essere accessibili solo dal sistema operativo.

Oltre a questi prefissi, i valori seguenti indicano anche oggetti locali o computer. Questi valori sono supportati per la compatibilità con le versioni precedenti e non devono essere usati quando si creano nuovi oggetti locali o del computer. Il nome della chiave degli oggetti dati privati locali può essere anche "$machine.acc", "SAC", "SAI", "SANSC" o iniziare con "RasDialParms" o "RasCredentials". Il nome della chiave per gli oggetti computer può anche iniziare con, "NL$" o "sc".

È possibile accedere a oggetti dati privati che non usano alcuna delle convenzioni di nome chiave precedenti in modalità remota e non vengono replicati in altri domini.

I dati archiviati dalla funzione LsaStorePrivateData non sono assolutamente protetti. Tuttavia, i dati vengono crittografati prima dell'archiviazione e la chiave ha un DACL che consente solo all'autore e agli amministratori di leggere i dati.

Usare la funzione LsaRetrievePrivateData per recuperare il valore archiviato da LsaStorePrivateData.

Requisiti

Requisito Valore
Client minimo supportato Windows XP [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione ntsecapi.h
Libreria Advapi32.lib
DLL Advapi32.dll

Vedi anche

LSA_UNICODE_STRING

LsaRetrievePrivateData