Поделиться через


Структура 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

Битовый элемент, определяющий характеристики учетных данных. Неопределенные биты должны быть инициализированы как ноль, а не изменены, чтобы разрешить дальнейшее улучшение.

Ценность Значение
CRED_FLAGS_PROMPT_NOW
2 (0x2)
Битовый набор, если учетные данные не сохраняют CredentialBlob и учетные данные не записываются во время этого сеанса входа. Этот бит игнорируется во входных данных и устанавливается автоматически при запросе.

Если типа CRED_TYPE_DOMAIN_CERTIFICATE, CredentialBlob не сохраняются в сеансах входа, так как ПИН-код сертификата очень конфиденциальный. Действительно, когда учетные данные записываются в диспетчер учетных данных, ПИН-код передается поставщику служб CSP, связанному с сертификатом. CSP будет применять политику хранения ПИН-кода, соответствующую сертификату.

Если типCRED_TYPE_DOMAIN_PASSWORD или CRED_TYPE_DOMAIN_CERTIFICATE, пакет проверки подлинности всегда завершается ошибкой попытки проверки подлинности при использовании учетных данных, помеченных как CRED_FLAGS_PROMPT_NOW. Приложение (обычно через пользовательский интерфейс круга ключей) запрашивает у пользователя пароль. Приложение сохраняет учетные данные и повторяет проверку подлинности. Так как учетные данные были записаны недавно, пакет проверки подлинности теперь получает учетные данные, которые не помечены как CRED_FLAGS_PROMPT_NOW.

CRED_FLAGS_USERNAME_TARGET
4 (0x4)
Бит устанавливается, если у этих учетных данных есть элемент TargetName задано то же значение, что и элемент userName . Такие учетные данные предназначены для хранения CredentialBlob для конкретного пользователя. Дополнительные сведения см. в функции CredMarshalCredential.

Этот бит можно указать только в том случае, если типа CRED_TYPE_DOMAIN_PASSWORD или CRED_TYPE_DOMAIN_CERTIFICATE.

Type

Тип учетных данных. Этот элемент нельзя изменить после создания учетных данных. Допустимы следующие значения.

Ценность Значение
CRED_TYPE_GENERIC
1 (0x1)
Учетные данные являются универсальными учетными данными. Учетные данные не будут использоваться определенным пакетом проверки подлинности. Учетные данные будут храниться безопасно, но не имеют других существенных характеристик.
CRED_TYPE_DOMAIN_PASSWORD
2 (0x2)
Учетные данные — это учетные данные паролей и относятся к пакетам проверки подлинности Майкрософт. Пакеты проверки подлинности NTLM, Kerberos и Negotiate автоматически будут использовать эти учетные данные при подключении к именованной цели.
CRED_TYPE_DOMAIN_CERTIFICATE
3 (0x3)
Учетные данные — это учетные данные сертификата, относящиеся к пакетам проверки подлинности Майкрософт. Пакеты проверки подлинности Kerberos, Negotiate и Schannel автоматически используют эти учетные данные при подключении к именованном целевому объекту.
CRED_TYPE_DOMAIN_VISIBLE_PASSWORD
4 (0x4)
Это значение больше не поддерживается.

Windows Server 2003 и Windows XP: учетные данные являются учетными данными пароля и относятся к пакетам проверки подлинности от Майкрософт. Пакет проверки подлинности Passport автоматически будет использовать эти учетные данные при подключении к именованного целевого объекта.

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

CRED_TYPE_GENERIC_CERTIFICATE
5 (0x5)
Учетные данные — это учетные данные сертификата, которые являются универсальным пакетом проверки подлинности.

Windows Server 2008, Windows Vista, Windows Server 2003 и Windows XP: Это значение не поддерживается.

CRED_TYPE_DOMAIN_EXTENDED
6 (0x6)
Учетные данные поддерживаются расширенными пакетами согласования.

Windows Server 2008, Windows Vista, Windows Server 2003 и Windows XP: Это значение не поддерживается.

CRED_TYPE_MAXIMUM
7 (0x7)
Максимальное количество поддерживаемых типов учетных данных.

Windows Server 2008, Windows Vista, Windows Server 2003 и Windows XP: Это значение не поддерживается.

CRED_TYPE_MAXIMUM_EX
CRED_TYPE_MAXIMUM+1000
Расширенное максимальное количество поддерживаемых типов учетных данных, которые теперь позволяют новым приложениям работать в старых операционных системах.

Windows Server 2008, Windows Vista, Windows Server 2003 и Windows XP: Это значение не поддерживается.

TargetName

Имя учетных данных. Элементы TargetName и 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, эти учетные данные соответствуют любому имени сервера. Эти учетные данные соответствуют одному звездочку и допустимы только в том случае, если СохранитьCRED_PERSIST_SESSION. Учетные данные можно задать приложениями, которые хотят временно переопределить учетные данные по умолчанию.

Этот член не может превышать CRED_MAX_DOMAIN_TARGET_NAME_LENGTH (337) символов.

Если типа CRED_TYPE_GENERIC, этот элемент должен определить службу, которая использует учетные данные в дополнение к фактическому целевому объекту. Корпорация Майкрософт предлагает, что имя должно быть префиксировано именем компании, реализуемой службой. Корпорация Майкрософт будет использовать префикс "Майкрософт". Службы, написанные корпорацией Майкрософт, должны добавить имя службы, например 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этот член может читаться только пакетами проверки подлинности.

Если элемент типа CRED_TYPE_DOMAIN_CERTIFICATE, этот элемент содержит пин-код Юникода для userName. Элементы CredentialBlob и CredentialBlobSize не включают конечный нулевой символ. Кроме того, этот член может читаться только пакетами проверки подлинности.

Если элемент типа CRED_TYPE_GENERIC, этот элемент определяется приложением.

Ожидается, что учетные данные будут переносимыми. Приложения должны убедиться, что данные в CredentialBlob переносимы. Приложение определяет байтовый и выравнивание данных в CredentialBlob.

Persist

Определяет сохраняемость этих учетных данных. Этот элемент может быть прочитан и записан.

Ценность Значение
CRED_PERSIST_SESSION
1 (0x1)
Учетные данные сохраняются в течение срока действия сеанса входа. Он не будет виден другим сеансам входа этого же пользователя. Он не будет существовать после выхода и обратного входа этого пользователя.
CRED_PERSIST_LOCAL_MACHINE
2 (0x2)
Учетные данные сохраняются для всех последующих сеансов входа на этом компьютере. Он виден другим сеансам входа этого же пользователя на этом же компьютере и не отображается сеансам входа для этого пользователя на других компьютерах.

Windows Vista Home Basic, Windows Vista Home Premium, Windows Vista Starter и Windows XP Home Edition: Это значение не поддерживается.

CRED_PERSIST_ENTERPRISE
3 (0x3)
Учетные данные сохраняются для всех последующих сеансов входа на этом компьютере. Он отображается другим сеансам входа этого же пользователя на этом компьютере и сеансам входа для этого пользователя на других компьютерах.

Этот параметр можно реализовать как локальные учетные данные, если администратор или пользователь настраивает учетную запись пользователя, чтобы не было перемещаемого состояния. Например, если у пользователя нет перемещаемого профиля, учетные данные будут сохраняться только локально.

Windows Vista Home Basic, Windows Vista Home Premium, Windows Vista Starter и Windows XP Home Edition: Это значение не поддерживается.

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