Функция LsaStorePrivateData (ntsecapi.h)
Не используйте функции частных данных LSA или универсальное шифрование и расшифровку данных. Вместо этого используйте функции CryptProtectData и CryptUnprotectData . Используйте функции частных данных LSA, только если необходимо управлять секретами LSA, как описано в разделе Модель секретных объектных данных.
Синтаксис
NTSTATUS LsaStorePrivateData(
[in] LSA_HANDLE PolicyHandle,
[in] PLSA_UNICODE_STRING KeyName,
[in] PLSA_UNICODE_STRING PrivateData
);
Параметры
[in] PolicyHandle
Дескриптор объекта Policy . Дескриптор должен иметь право доступа POLICY_CREATE_SECRET, если это первый раз, когда данные хранятся под ключом, указанным параметром KeyName . Дополнительные сведения см. в разделе Открытие дескриптора объекта политики.
[in] KeyName
Указатель на структуру LSA_UNICODE_STRING , содержащую имя ключа, в котором хранятся частные данные.
[in] PrivateData
Указатель на структуру LSA_UNICODE_STRING , содержащую частные данные для хранения. Функция шифрует эти данные перед их хранением.
Если этот параметр имеет значение NULL, функция удаляет все частные данные, хранящиеся в ключе, и удаляет ключ. Последующие попытки получить данные из ключа возвращают код ошибки STATUS_OBJECT_NAME_NOT_FOUND.
Возвращаемое значение
Если функция выполняется успешно, возвращаемое значение будет STATUS_SUCCESS.
Если функция завершается сбоем, возвращаемым значением будет код NTSTATUS. Дополнительные сведения см. в разделе Возвращаемые значения функции политики LSA.
Для преобразования кода NTSTATUS в код ошибки Windows можно использовать функцию LsaNtStatusToWinError .
Комментарии
Функция LsaStorePrivateData может использоваться серверными приложениями для хранения паролей клиентов и компьютеров.
Как описано в разделе Частный объект данных, частные объекты данных включают три специализированных типа: локальный, глобальный и компьютерный. Специализированные объекты идентифицируются префиксом в имени ключа: "L$" для локальных объектов, "G$" для глобальных объектов и "M$" для объектов компьютера. Удаленный доступ к локальным объектам невозможен. Доступ к объектам компьютера может осуществлять только операционная система.
В дополнение к этим префиксам следующие значения также указывают локальные объекты или объекты компьютера. Эти значения поддерживаются для обеспечения обратной совместимости и не должны использоваться при создании новых локальных объектов или объектов компьютера. Имя ключа локальных частных объектов данных также может быть "$machine.acc", "SAC", "SAI", "SANSC" или начинаться с "RasDialParms" или "RasCredentials". Имя ключа для объектов компьютера также может начинаться с "NL$" или "sc".
Частные объекты данных, которые не используют ни одно из описанных выше соглашений об именах ключей, можно получить удаленный доступ и не реплицировать в другие домены.
Данные, хранящиеся функцией LsaStorePrivateData , не защищены абсолютно. Однако данные шифруются перед сохранением, а ключ имеет daCL , который позволяет только создателю и администраторам считывать данные.
Используйте функцию LsaRetrievePrivateData , чтобы получить значение , хранящееся в LsaStorePrivateData.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | ntsecapi.h |
Библиотека | Advapi32.lib |
DLL | Advapi32.dll |