Структура CREDENTIALW (wincred.h)
Структура CREDENTIAL содержит отдельные учетные данные.
Синтаксис
typedef struct _CREDENTIALW {
DWORD Flags;
DWORD Type;
#if ...
wchar_t *TargetName;
#else
LPWSTR TargetName;
#endif
#if ...
wchar_t *Comment;
#else
LPWSTR Comment;
#endif
FILETIME LastWritten;
DWORD CredentialBlobSize;
LPBYTE CredentialBlob;
DWORD Persist;
DWORD AttributeCount;
PCREDENTIAL_ATTRIBUTEW Attributes;
#if ...
wchar_t *TargetAlias;
#else
LPWSTR TargetAlias;
#endif
#if ...
wchar_t *UserName;
#else
LPWSTR UserName;
#endif
} CREDENTIALW, *PCREDENTIALW;
Члены
Flags
Битовый элемент, определяющий характеристики учетных данных. Неопределенные биты должны быть инициализированы как ноль, а не изменены, чтобы разрешить дальнейшее улучшение.
Ценность | Значение |
---|---|
|
Битовый набор, если учетные данные не сохраняют CredentialBlob и учетные данные не записываются во время этого сеанса входа. Этот бит игнорируется во входных данных и устанавливается автоматически при запросе.
Если типа Если типCRED_TYPE_DOMAIN_PASSWORD или CRED_TYPE_DOMAIN_CERTIFICATE, пакет проверки подлинности всегда завершается ошибкой попытки проверки подлинности при использовании учетных данных, помеченных как CRED_FLAGS_PROMPT_NOW. Приложение (обычно через пользовательский интерфейс круга ключей) запрашивает у пользователя пароль. Приложение сохраняет учетные данные и повторяет проверку подлинности. Так как учетные данные были записаны недавно, пакет проверки подлинности теперь получает учетные данные, которые не помечены как CRED_FLAGS_PROMPT_NOW. |
|
Бит устанавливается, если у этих учетных данных есть Этот бит можно указать только в том случае, если типа |
Type
Тип учетных данных. Этот элемент нельзя изменить после создания учетных данных. Допустимы следующие значения.
TargetName
Имя учетных данных. Элементы TargetName и Type однозначно определяют учетные данные. Этот элемент нельзя изменить после создания учетных данных. Вместо этого необходимо удалить учетные данные со старым именем и учетные данные с новым именем.
Если типа
Если 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, эти учетные данные соответствуют любому имени сервера. Эти учетные данные соответствуют одному звездочку и допустимы только в том случае, если СохранитьCRED_PERSIST_SESSION. Учетные данные можно задать приложениями, которые хотят временно переопределить учетные данные по умолчанию.
Этот член не может превышать CRED_MAX_DOMAIN_TARGET_NAME_LENGTH (337) символов.
Если типа
Этот элемент не учитывает регистр.
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этот член может читаться только пакетами проверки подлинности.
Если элемент типа
Если элемент типа
Ожидается, что учетные данные будут переносимыми. Приложения должны убедиться, что данные в 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, этот элемент может быть либо domainName\UserName, либо имя участника-пользователя.
Если CRED_TYPE_DOMAIN_CERTIFICATEучетные данные типа 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 |