Функция CredWriteA (wincred.h)
Функция CredWrite создает новые учетные данные или изменяет существующие учетные данные в наборе учетных данных пользователя. Новые учетные данные связаны с сеансом входа текущего маркера. Для маркера не должен быть отключен идентификатор безопасности (SID) пользователя.
Синтаксис
BOOL CredWriteA(
[in] PCREDENTIALA Credential,
[in] DWORD Flags
);
Параметры
[in] Credential
Указатель на записываемую структуру CREDENTIAL .
[in] Flags
Флаги, управляющие операцией функции. Определен следующий флаг.
Возвращаемое значение
Если функция выполнена успешно, функция возвращает значение TRUE.
Если функция завершается сбоем, она возвращает значение FALSE. Вызовите функцию GetLastError , чтобы получить более конкретный код состояния. Можно вернуть следующие коды состояния.
При записи учетных данных CRED_TYPE_CERTIFICATE могут быть возвращены другие ошибки смарт-карта.
Возвращаемый код или значение | Описание |
---|---|
|
Сеанс входа не существует или с этим сеансом входа не связан набор учетных данных. Сеансы входа в сеть не имеют связанного набора учетных данных. |
|
Некоторые поля нельзя изменить в существующих учетных данных. Эта ошибка возвращается, если поле не соответствует значению в защищенном поле существующих учетных данных. |
|
Недопустимое значение было указано для параметра Flags . |
|
Недопустимый элемент UserName переданной структуры учетных данных . Описание допустимого синтаксиса имени пользователя см. в определении этого элемента. |
|
CRED_PRESERVE_CREDENTIAL_BLOB указано, и отсутствуют существующие учетные данные с одинаковыми значениями TargetName и Type. |
|
Записываемые учетные данные CRED_TYPE_CERTIFICATE требуют наличия средства чтения смарт-карта. |
|
Для записи учетных данных CRED_TYPE_CERTIFICATE требуется вставить смарт-карта. |
|
Для записываемых учетных данных CRED_TYPE_CERTIFICATE указан неправильный ПИН-код. |
Комментарии
Эта функция создает учетные данные, если учетные данные с указанными TargetName и Type не существуют. Если учетные данные с указанными targetName и Type существуют, новые указанные учетные данные заменяют существующие.
Когда эта функция записывает учетные данные CRED_TYPE_CERTIFICATE, член Credential-CredentialBlobзадает ПИН-код>, защищающий закрытый ключ сертификата, указанного элементом Credential-UserName>. Диспетчер учетных данных не поддерживает ПИН-код. Вместо этого ПИН-код передается поставщику служб шифрования (CSP), указанному в сертификате, для последующего использования CSP и пакетами проверки подлинности. Поставщик служб конфигурации определяет время существования ПИН-кода. Большинство поставщиков облачных служб сбрасывают ПИН-код, когда смарт-карта удаляется из средства чтения смарт-карта.
Если значение элемента Type структуры CREDENTIAL , указанной параметром Credential , CRED_TYPE_DOMAIN_EXTENDED, в целевом имени должно быть указано пространство имен. Эта функция не поддерживает запись в целевые имена, содержащие подстановочные знаки.
Примечание
Заголовок wincred.h определяет CredWrite в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | wincred.h |
Библиотека | Advapi32.lib |
DLL | Advapi32.dll |