Функция CredWriteDomainCredentialsW (wincred.h)

Функция CredWriteDomainCredentials записывает учетные данные домена в набор учетных данных пользователя. Используемый набор учетных данных связан с сеансом входа текущего маркера. Для маркера не должен быть отключен идентификатор безопасности пользователя.

Синтаксис

BOOL CredWriteDomainCredentialsW(
  [in] PCREDENTIAL_TARGET_INFORMATIONW TargetInfo,
  [in] PCREDENTIALW                    Credential,
  [in] DWORD                           Flags
);

Параметры

[in] TargetInfo

Определяет целевой сервер. По крайней мере один из элементов именования не должен иметь значение NULL и может быть NetbiosServerName, DnsServerName, NetbiosDomainName, DnsDomainName или DnsTreeName.

[in] Credential

Учетные данные для записи.

Учетные данные должны совпадать с TargetInfo . Например, если TargetName является DNS-именем с подстановочными знаками, то элемент TargetName учетных данных должен быть постфиксом элемента DnsServerName из TargetInfo.

[in] Flags

Флаги для управления работой API. Определен следующий флаг.

Значение Значение
CRED_PRESERVE_CREDENTIAL_BLOB
Большой двоичный объект учетных данных должен быть сохранен из уже существующих учетных данных с тем же именем и типом учетных данных. CredentialBlobSize переданного в структуре учетных данных должен быть равен нулю.

Возвращаемое значение

Если функция выполняется успешно, функция возвращает значение TRUE.

Если функция завершается сбоем, она возвращает значение FALSE. Вызовите функцию GetLastError , чтобы получить более конкретный код состояния. Можно вернуть следующие коды состояния.

При записи учетных данных CRED_TYPE_CERTIFICATE могут возвращаться другие ошибки интеллектуального карта.

Код возврата Описание
ERROR_INVALID_PARAMETER
Один или несколько параметров являются недопустимыми. Либо ни один из параметров именования не был указан, либо указанные учетные данные не имеют элемента Type , заданного как CRED_TYPE_DOMAIN_PASSWORD или CRED_TYPE_DOMAIN_CERTIFICATE, либо учетные данные не соответствуют TargetInfo.
ERROR_NO_SUCH_LOGON_SESSION
Сеанс входа не существует или с этим сеансом входа не связан набор учетных данных. Сеансы сетевого входа не имеют связанных учетных данных.
ERROR_INVALID_FLAGS
Для параметра Flags было указано недопустимое значение.
ERROR_BAD_USERNAME
Недопустимый элемент UserName объекта , переданного в структуре учетных данных . Описание допустимых синтаксисов см. в определении этого элемента.
ERROR_NOT_FOUND
CRED_PRESERVE_CREDENTIAL_BLOB указано, и отсутствуют существующие учетные данные для одного и того же TargetName и Type.
SCARD_E_NO_READERS_AVAILABLE
Для записи учетных данных CRED_TYPE_CERTIFICATE требуется, чтобы средство чтения смарт-карта было доступно.
SCARD_E_NO_SMARTCARD или SCARD_W_REMOVED_CARD: CRED_TYPE_CERTIFICATE
Для записи учетных данных требуется вставить смарт-карта.
SCARD_W_WRONG_CHV
Для записываемых учетных данных CRED_TYPE_CERTIFICATE указан неправильный ПИН-код.

Комментарии

Когда эта функция записывает учетные данные CRED_TYPE_CERTIFICATE, член Credential-CredentialBlob указывает ПИН-код>, который защищает закрытый ключ сертификата, указанного в credential-UserName>. Диспетчер учетных данных не поддерживает ПИН-код. Вместо этого ПИН-код передается поставщику CSP сертификата для последующего использования CSP и пакетами проверки подлинности. CSP определяет время существования ПИН-кода. Например, большинство поставщиков служб конфигурации сбрасывают ПИН-код при удалении смарт-карта.

CredWriteDomainCredentials отличается от CredWrite тем, что обрабатывает идентификаторы учетных данных домена (CRED_TYPE_DOMAIN_PASSWORD или CRED_TYPE_DOMAIN_CERTIFICATE). Учетные данные домена содержат более одного целевого элемента.

Если значение элемента Type структуры CREDENTIAL , указанной параметром Credential , CRED_TYPE_DOMAIN_EXTENDED, в целевом имени должно быть указано пространство имен.

Примечание

Заголовок wincred.h определяет CredWriteDomainCredentials в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Использование псевдонима, не зависящий от кодирования, с кодом, который не является нейтральным для кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

Требование Значение
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header wincred.h
Библиотека Advapi32.lib
DLL Advapi32.dll