Функция CredReadDomainCredentialsA (wincred.h)
Функция CredReadDomainCredentials считывает учетные данные домена из набора учетных данных пользователя. Используемый набор учетных данных связан с сеансом входа текущего маркера. Для маркера не должен быть отключен идентификатор безопасности пользователя.
Синтаксис
BOOL CredReadDomainCredentialsA(
[in] PCREDENTIAL_TARGET_INFORMATIONA TargetInfo,
[in] DWORD Flags,
[out] DWORD *Count,
[out] PCREDENTIALA **Credential
);
Параметры
[in] TargetInfo
Сведения о целевом объекте, идентифицирующий целевой сервер. Хотя бы один из элементов именования не должен иметь значение NULL: NetbiosServerName, DnsServerName, NetbiosDomainName, DnsDomainName или DnsTreeName.
[in] Flags
Флаги, управляющие работой функции.
Определен следующий флаг:
CRED_CACHE_TARGET_INFORMATION
Кэшируйте TargetInfo для последующего чтения с помощью CredGetTargetInfo.
[out] Count
Количество учетных данных, возвращенных в массиве Учетные данные .
[out] Credential
Указатель на массив указателей на учетные данные. Возвращается наиболее конкретные существующие учетные данные, соответствующие TargetInfo . Если учетные данные разных типов (например, CRED_TYPE_DOMAIN_PASSWORD и CRED_TYPE_DOMAIN_CERTIFICATE учетные данные) существуют, возвращается один из каждого типа. Если бы было установлено соединение с именованным целевым объектом, будут использоваться эти наиболее конкретные учетные данные.
Только те типы учетных данных, которые указаны в TargetInfo. Возвращается массив CredTypes. Возвращаемый массив учетных данных сортируется в том же порядке, что и TargetInfo. Массив CredTypes. То есть пакеты проверки подлинности указывают предпочтительный тип учетных данных, указав его ранее в TargetInfo. Массив CredTypes. Если TargetInfo. CredTypeCount равно нулю, массив учетных данных возвращается в следующем отсортированном порядке:
- CRED_TYPE_DOMAIN_CERTIFICATE
- CRED_TYPE_DOMAIN_PASSWORD
Возвращаемый буфер является одним выделенным блоком. Все указатели, содержащиеся в буфере, являются указателями на расположения в пределах одного выделенного блока. Один возвращаемый буфер должен быть освобожден путем вызова CredFree.
Возвращаемое значение
Функция возвращает значение TRUE при успешном выполнении и FALSE при сбое. Для получения более конкретного кода состояния можно вызвать функцию GetLastError . Можно вернуть следующие коды состояния:
- ERROR_INVALID_PARAMETER
Ни один из параметров именования не указан.
- ERROR_NOT_FOUND
Учетные данные, соответствующие указанным параметрам именования, отсутствуют.
- ERROR_NO_SUCH_LOGON_SESSION
Сеанс входа не существует или с этим сеансом входа не связан набор учетных данных. Сеансы сетевого входа не имеют связанных учетных данных.
- ERROR_INVALID_FLAGS
Для параметра Flags был указан недопустимый флаг.
Комментарии
Эта функция возвращает наиболее конкретные учетные данные, соответствующие параметрам именования. Например, если имеются учетные данные, соответствующие имени целевого сервера, и учетные данные, соответствующие целевому доменному имени, возвращаются только учетные данные для конкретного сервера. Это учетные данные, которые будут использоваться.
В следующем списке указан порядок (от наиболее специфичных до наименее конкретных) возвращаемых учетных данных, если совпадает несколько:
- Имя целевого объекта учетных данных имеет форму <DfsRoot>\<DfsShare> и является точным совпадением в TargetName.
- Точное совпадение в dnsServerName.
- Точное совпадение в NetBIOSServerName.
- Точное совпадение в TargetName.
- Соответствие dnsServerName учетным данным сервера с подстановочными знаками. Если совпадает несколько учетных данных сервера с подстановочными знаками, используются учетные данные с более длинным значением TargetName. То есть учетные данные для *.example.microsoft.com используются вместо учетных данных для *.microsoft.com.
- Точное соответствие DnsDomainName учетным данным домена с подстановочными знаками в форме <DnsDomainName>\*.
- Точное соответствие NetBIOSDomainName учетным данным домена с подстановочными знаками в форме <NetBIOSDomainName>\*
- Учетные данные с именем CRED_SESSION_WILDCARD_NAME.
- Учетные данные с именем "*".
Если значение элемента Type структуры CREDENTIAL , заданной параметром Credentials , CRED_TYPE_DOMAIN_EXTENDED, в целевом имени должно быть указано пространство имен. Эта функция может возвращать только одно удостоверение указанного типа.
Эта функция может возвращать несколько учетных данных этого типа, но CRED_TYPE_DOMAIN_EXTENDED нельзя смешать с другими типами в элементе CredTypesструктуры CREDENTIAL_TARGET_INFORMATION , заданной параметром TargetInfo .
Примечание
Заголовок wincred.h определяет CredReadDomainCredentials в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Использование псевдонима, не зависящий от кодирования, с кодом, который не является нейтральным для кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | wincred.h |
Библиотека | Advapi32.lib |
DLL | Advapi32.dll |