Функция CredUIPromptForWindowsCredentialsA (wincred.h)
Функция CredUIPromptForWindowsCredentials создает и отображает настраиваемое диалоговое окно, позволяющее пользователям предоставлять учетные данные с помощью любого поставщика учетных данных, установленного на локальном компьютере.
Синтаксис
CREDUIAPI DWORD CredUIPromptForWindowsCredentialsA(
[in, optional] PCREDUI_INFOA pUiInfo,
[in] DWORD dwAuthError,
[in, out] ULONG *pulAuthPackage,
[in, optional] LPCVOID pvInAuthBuffer,
[in] ULONG ulInAuthBufferSize,
[out] LPVOID *ppvOutAuthBuffer,
[out] ULONG *pulOutAuthBufferSize,
[in, out, optional] BOOL *pfSave,
[in] DWORD dwFlags
);
Параметры
[in, optional] pUiInfo
Указатель на структуру CREDUI_INFO , содержащую сведения для настройки внешнего вида диалогового окна, отображаемого этой функцией.
Если элемент hwndParent структуры CREDUI_INFO не имеет значения NULL, эта функция отображает модальное диалоговое окно по центру родительского окна.
Если элемент hwndParent структуры CREDUI_INFO имеет значение NULL, функция отображает диалоговое окно по центру экрана.
Эта функция игнорирует элемент hbmBanner структуры CREDUI_INFO .
[in] dwAuthError
Код ошибки Windows, определенный в Winerror.h, который отображается в диалоговом окне. Если собранные ранее учетные данные были недопустимыми, вызывающий объект использует этот параметр для передачи сообщения об ошибке из API, который собрал учетные данные (например, Winlogon) в эту функцию. Соответствующее сообщение об ошибке форматируется и отображается в диалоговом окне. Задайте значение этого параметра равным нулю, чтобы сообщение об ошибке не отображалось.
[in, out] pulAuthPackage
Во входных данных значение этого параметра используется для указания пакета проверки подлинности, для которого сериализуются учетные данные в буфере pvInAuthBuffer . Если значение pvInAuthBuffer равно NULL и флаг CREDUIWIN_AUTHPACKAGE_ONLY задан в параметре dwFlags , перечисляются только поставщики учетных данных, способные сериализовать учетные данные для указанного пакета проверки подлинности.
Чтобы получить соответствующее значение для этого параметра для входных данных, вызовите функцию LsaLookupAuthenticationPackage и используйте значение параметра AuthenticationPackage этой функции.
В выходных данных этот параметр указывает пакет проверки подлинности, для которого сериализуются учетные данные в буфере ppvOutAuthBuffer .
[in, optional] pvInAuthBuffer
Указатель на большой двоичный объект учетных данных, используемый для заполнения полей учетных данных в диалоговом окне. Присвойте этому параметру значение NULL , чтобы оставить поля учетных данных пустыми.
[in] ulInAuthBufferSize
Размер буфера pvInAuthBuffer (в байтах ).
[out] ppvOutAuthBuffer
Адрес указателя, который в выходных данных указывает большой двоичный объект учетных данных. Для учетных данных Kerberos, NTLM или Negotiate вызовите функцию CredUnPackAuthenticationBuffer , чтобы преобразовать этот BLOB-объект в строковые представления учетных данных.
Завершив использование большого двоичного объекта учетных данных, очистите его из памяти, вызвав функцию SecureZeroMemory , и освободите ее, вызвав функцию CoTaskMemFree .
[out] pulOutAuthBufferSize
Размер буфера ppvOutAuthBuffer (в байтах ).
[in, out, optional] pfSave
Указатель на логическое значение, указывающее, выбрано ли поле Сохранить проверка в диалоговом окне, отображаемом этой функцией. В выходных данных значение этого параметра указывает, было ли выбрано поле Сохранить проверка, когда пользователь нажимает кнопку Отправить в диалоговом окне. Присвойте этому параметру значение NULL, чтобы игнорировать поле Сохранить проверка.
Этот параметр игнорируется, если флаг CREDUIWIN_CHECKBOX не задан в параметре dwFlags .
[in] dwFlags
Значение типа , указывающее поведение для этой функции. Это значение может быть побитовой или комбинацией одного или нескольких из следующих значений.
Значение | Значение |
---|---|
|
Вызывающий объект запрашивает, чтобы поставщик учетных данных вернул имя пользователя и пароль в виде обычного текста.
Это значение не может быть объединено с SECURE_PROMPT. |
|
В диалоговом окне появится поле Сохранить проверка. |
|
Следует перечислить только поставщиков учетных данных, поддерживающих пакет проверки подлинности, указанный параметром pulAuthPackage .
Это значение не может быть объединено с CREDUIWIN_IN_CRED_ONLY. |
|
Необходимо перечислить только учетные данные, указанные параметром pvInAuthBuffer для пакета проверки подлинности, указанного параметром pulAuthPackage .
Если этот флаг установлен, а параметр pvInAuthBuffer имеет значение NULL, функция завершается ошибкой. Это значение нельзя объединить с CREDUIWIN_AUTHPACKAGE_ONLY. |
|
Поставщики учетных данных должны перечислять только администраторов. Это значение предназначено только для целей контроля учетных записей (UAC). Рекомендуется, чтобы внешние вызывающие не устанавливали этот флаг. |
|
Необходимо перечислить только входящие учетные данные для пакета проверки подлинности, указанные параметром pulAuthPackage . |
|
Диалоговое окно учетных данных должно отображаться на защищенном рабочем столе. Это значение нельзя объединить с CREDUIWIN_GENERIC.
Windows Vista: Это значение поддерживается начиная с Windows Vista с пакетом обновления 1 (SP1). |
|
Диалоговое окно учетных данных вызывается функцией SspiPromptForCredentials , и клиенту будет предложено выполнить предварительное подтверждение. Если SSPIPFC_NO_CHECKBOX передается в параметре pvInAuthBuffer, поставщик учетных данных не должен отображать поле проверка.
Windows Vista: Это значение поддерживается начиная с Windows Vista с пакетом обновления 1 (SP1). |
|
Поставщик учетных данных не будет упаковывать имя центра AAD. Это применяется только к Azure AD присоединенным устройствам.
Windows 10 версии 1607: это значение поддерживается начиная с Windows 10 версии 1607. |
|
Поставщик учетных данных должен выровнять большой двоичный объект учетных данных, на который указывает параметр ppvOutAuthBuffer , с 32-разрядной границей, даже если поставщик работает в 64-разрядной системе. |
|
Windows Hello учетные данные будут упакованы в буфер интеллектуальной карта проверки подлинности. Это относится только к поставщикам учетных данных для распознавания лиц, отпечатков пальцев и ПИН-кода.
Windows 10, версия 1809: это значение поддерживается начиная с Windows 10, версия 1809. |
Возвращаемое значение
Если функция выполняется успешно, функция возвращает ERROR_SUCCESS. Если функция отменена пользователем, она возвращает ERROR_CANCELLED. Любое другое возвращаемое значение указывает, что не удалось загрузить функцию.
Комментарии
Эта функция не сохраняет учетные данные.
Приложения, использующие SSPI для проверки подлинности пользователей, не должны вызывать эту функцию. Вместо этого вызовите SspiPromptForCredentials.
Примечание
Заголовок wincred.h определяет CredUIPromptForWindowsCredentials как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора UNICODE. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 [только классические приложения] |
Целевая платформа | Windows |
Header | wincred.h |
Библиотека | Credui.lib |
DLL | Credui.dll |