Функция CredWriteDomainCredentialsA (wincred.h)
Функция CredWriteDomainCredentials записывает учетные данные домена в набор учетных данных пользователя. Используемый набор учетных данных связан с сеансом входа текущего маркера. Маркер не должен отключал идентификатор безопасности пользователя.
Синтаксис
BOOL CredWriteDomainCredentialsA(
[in] PCREDENTIAL_TARGET_INFORMATIONA TargetInfo,
[in] PCREDENTIALA Credential,
[in] DWORD Flags
);
Параметры
[in] TargetInfo
Идентифицирует целевой сервер. По крайней мере один из элементов именования должен быть не равен NULL и может иметь значение NetbiosServerName, DnsServerName, NetbiosDomainName, DnsDomainName или DnsTreeName.
[in] Credential
Записываемые учетные данные.
Учетные данные должны совпадать с TargetInfo . Например, если TargetName является DNS-именем с подстановочными знаками, то элемент TargetName учетных данных должен быть постфиксом элемента DnsServerName из TargetInfo.
[in] Flags
Флаги для управления работой API. Определен следующий флаг.
Возвращаемое значение
Если функция выполнена успешно, функция возвращает значение TRUE.
Если функция завершается сбоем, она возвращает значение FALSE. Вызовите функцию GetLastError , чтобы получить более конкретный код состояния. Можно вернуть следующие коды состояния.
При записи учетных данных CRED_TYPE_CERTIFICATE могут быть возвращены другие ошибки смарт-карта.
Код возврата | Описание |
---|---|
|
Один или несколько параметров недопустимы. Либо ни один из параметров именования не был указан, либо указанные учетные данные не имеют элемента Type , заданного как CRED_TYPE_DOMAIN_PASSWORD или CRED_TYPE_DOMAIN_CERTIFICATE, либо учетные данные не соответствуют TargetInfo. |
|
Сеанс входа не существует или с этим сеансом входа не связан набор учетных данных. Сеансы входа в сеть не имеют связанного набора учетных данных. |
|
Недопустимое значение было указано для параметра Flags . |
|
Недопустимый элемент UserName переданной структуры учетных данных . Описание допустимых синтаксисов см. в определении этого элемента. |
|
CRED_PRESERVE_CREDENTIAL_BLOB указано, и отсутствуют существующие учетные данные с одинаковыми значениями TargetName и Type. |
|
Записываемые учетные данные CRED_TYPE_CERTIFICATE требуют наличия средства чтения смарт-карта. |
|
Для записи учетных данных требуется вставить смарт-карта. |
|
Для записываемых учетных данных CRED_TYPE_CERTIFICATE указан неправильный ПИН-код. |
Комментарии
Когда эта функция записывает учетные данные CRED_TYPE_CERTIFICATE, член Credential-CredentialBlob> задает ПИН-код, который защищает закрытый ключ сертификата, указанного в credential-UserName>. Диспетчер учетных данных не поддерживает ПИН-код. Вместо этого ПИН-код передается поставщику 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 |