Структура CREDENTIALA (wincred.h)
Структура CREDENTIAL содержит отдельные учетные данные.
Синтаксис
typedef struct _CREDENTIALA {
DWORD Flags;
DWORD Type;
LPSTR TargetName;
LPSTR Comment;
FILETIME LastWritten;
DWORD CredentialBlobSize;
LPBYTE CredentialBlob;
DWORD Persist;
DWORD AttributeCount;
PCREDENTIAL_ATTRIBUTEA Attributes;
LPSTR TargetAlias;
LPSTR UserName;
} CREDENTIALA, *PCREDENTIALA;
Члены
Flags
Битовый элемент, определяющий характеристики учетных данных. Неопределенные биты должны быть инициализированы как ноль и не изменены в противном случае, чтобы обеспечить дальнейшее улучшение.
Значение | Значение |
---|---|
|
Бит задается, если учетные данные не сохраняют CredentialBlob и учетные данные не были записаны во время этого сеанса входа. Этот бит игнорируется во входных данных и задается автоматически при запросе.
Если type имеет значение CRED_TYPE_DOMAIN_CERTIFICATE, CredentialBlob не сохраняется в сеансах входа, так как ПИН-код сертификата является очень конфиденциальной информацией. Действительно, когда учетные данные записываются в диспетчер учетных данных, ПИН-код передается поставщику служб конфигурации, связанному с сертификатом. CSP будет применять политику хранения ПИН-кодов, соответствующую сертификату. Если type имеет значение CRED_TYPE_DOMAIN_PASSWORD или CRED_TYPE_DOMAIN_CERTIFICATE, пакет проверки подлинности всегда завершается неудачей при использовании учетных данных, помеченных как CRED_FLAGS_PROMPT_NOW. Приложение (обычно через пользовательский интерфейс круга ключей) запрашивает у пользователя пароль. Приложение сохраняет учетные данные и повторяет проверку подлинности. Так как учетные данные были записаны недавно, пакет проверки подлинности теперь получает учетные данные, которые не помечены как CRED_FLAGS_PROMPT_NOW. |
|
Бит задается, если для этих учетных данных для элемента TargetName задано то же значение, что и для элемента UserName . Такие учетные данные предназначены для хранения CredentialBlob для определенного пользователя. Дополнительные сведения см. в разделе Функция CredMarshalCredential .
Этот бит можно указать, только если типCRED_TYPE_DOMAIN_PASSWORD или CRED_TYPE_DOMAIN_CERTIFICATE. |
Type
Тип учетных данных. Этот элемент нельзя изменить после создания учетных данных. Допустимы следующие значения.
TargetName
Имя учетных данных. Элементы TargetName и Type однозначно идентифицируют учетные данные. Этот элемент нельзя изменить после создания учетных данных. Вместо этого следует удалить учетные данные со старым именем и создать учетные данные с новым именем.
Если параметр Type имеет значение CRED_TYPE_DOMAIN_PASSWORD или CRED_TYPE_DOMAIN_CERTIFICATE, этот член определяет сервер или серверы, для которые должны использоваться учетные данные. Элемент — это имя netBIOS-сервера или DNS-сервера, суффикс имени узла DNS, содержащий подстановочный знак, имя домена NetBIOS или DNS, содержащее последовательность подстановочных знаков, или звездочка.
Если TargetName является dns-именем узла, то элементОм TargetAlias может быть NetBIOS-имя узла.
Если TargetName — это суффикс имени узла DNS, содержащий подстановочный знак, крайней левой меткой имени узла DNS является звездочка (*), указывающая, что целевое имя — это любой сервер, имя которого заканчивается указанным именем, например *.microsoft.com.
Если TargetName — это доменное имя, содержащее последовательность подстановочных знаков, синтаксис — это доменное имя, за которым следует обратная косая черта и звездочка (*), что означает, что целевое имя является любым сервером, который является членом именованного домена (или области).
Если TargetName — это доменное имя DNS, содержащее последовательность подстановочных знаков, то элементОм TargetAlias может быть доменное имя NetBIOS, использующее последовательность подстановочных знаков для того же домена.
Если TargetName указывает общую папку DFS, например DfsRoot\DfsShare, то эти учетные данные соответствуют определенной общей папке DFS и всем серверам, к которым осуществляется доступ через эту общую папку DFS.
Если TargetName является одной звездочкой (*), эти учетные данные соответствуют любому имени сервера.
Если targetName имеет значение CRED_SESSION_WILDCARD_NAME, эти учетные данные соответствуют любому имени сервера. Эти учетные данные совпадают перед одной звездочкой и действительны только в том случае, если параметр Persist имеет значение CRED_PERSIST_SESSION. Учетные данные могут быть заданы приложениями, которые хотят временно переопределить учетные данные по умолчанию.
Этот элемент не может содержать более CRED_MAX_DOMAIN_TARGET_NAME_LENGTH (337) символов.
Если тип CRED_TYPE_GENERIC, этот член должен идентифицировать службу, которая использует учетные данные в дополнение к фактическому целевому объекту. Корпорация Майкрософт предлагает, чтобы имя было префиксировано именем компании, реализующего службу. Корпорация Майкрософт будет использовать префикс "Microsoft". Службы, написанные корпорацией Майкрософт, должны добавлять имя службы, например Microsoft_RAS_TargetName. Этот элемент не может содержать более CRED_MAX_GENERIC_TARGET_NAME_LENGTH (32767) символов.
Этот элемент не учитывает регистр.
Comment
Строковый комментарий пользователя, описывающий эти учетные данные. Этот элемент не может содержать более CRED_MAX_STRING_LENGTH (256) символов.
LastWritten
Время последнего изменения учетных данных в значении времени по Гринвичу ( в среднем по Гринвичу). Для операций записи значение этого элемента игнорируется.
CredentialBlobSize
Размер элемента CredentialBlob в байтах. Размер этого элемента не может превышать CRED_MAX_CREDENTIAL_BLOB_SIZE (5*512) байтов.
CredentialBlob
Секретные данные для учетных данных. Элемент CredentialBlob может быть как для чтения, так и для записи.
Если элемент TypeCRED_TYPE_DOMAIN_PASSWORD, он содержит пароль в формате Юникода в виде открытого текста для UserName. Элементы CredentialBlob и CredentialBlobSize не содержат нулевой символ в конце. Кроме того, для CRED_TYPE_DOMAIN_PASSWORD этот элемент может быть прочитан только пакетами проверки подлинности.
Если элемент Type является CRED_TYPE_DOMAIN_CERTIFICATE, он содержит четкий тестовый ПИН-код Юникода для UserName. Элементы CredentialBlob и CredentialBlobSize не содержат нулевой символ в конце. Кроме того, этот элемент может быть прочитан только пакетами проверки подлинности.
Если элемент TypeCRED_TYPE_GENERIC, он определяется приложением.
Учетные данные должны быть переносимыми. Приложения должны гарантировать переносимость данных в CredentialBlob . Приложение определяет байт-байт и выравнивание данных в CredentialBlob.
Persist
Определяет сохраняемость этих учетных данных. Этот элемент можно читать и записывать.
AttributeCount
Количество атрибутов, определяемых приложением, которые будут связаны с учетными данными. Этот элемент можно читать и записывать. Его значение не может быть больше CRED_MAX_ATTRIBUTES (64).
Attributes
Атрибуты, определяемые приложением, связанные с учетными данными. Этот элемент можно читать и записывать.
TargetAlias
Псевдоним для элемента TargetName . Этот элемент можно читать и записывать. Он не может быть длиннее CRED_MAX_STRING_LENGTH (256) символов.
Если тип учетных данных CRED_TYPE_GENERIC, этот элемент может быть не равен NULL, но диспетчер учетных данных игнорирует этот элемент.
UserName
Имя пользователя учетной записи, используемой для подключения к TargetName.
Если тип учетных данных является CRED_TYPE_DOMAIN_PASSWORD, это может быть имя _пользователя домена или имя участника-пользователя.
Если тип учетных данных CRED_TYPE_DOMAIN_CERTIFICATE, этот элемент должен быть маршалированной ссылкой на сертификат, созданной путем вызова CredMarshalCredential с CertCredential.
Если тип учетных данных CRED_TYPE_GENERIC, этот элемент может быть не равен NULL, но диспетчер учетных данных игнорирует этот элемент.
Этот элемент не может содержать более CRED_MAX_USERNAME_LENGTH (513) символов.
Комментарии
Примечание
Заголовок wincred.h определяет CREDENTIAL в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Использование псевдонима, не зависящий от кодирования, с кодом, который не является нейтральным для кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Верхняя часть | wincred.h |