Freigeben über


CredUIPromptForWindowsCredentialsA-Funktion (wincred.h)

Die CredUIPromptForWindowsCredentials-Funktion erstellt und zeigt ein konfigurierbares Dialogfeld an, in dem Benutzer Anmeldeinformationen mithilfe eines auf dem lokalen Computer installierten Anmeldeinformationsanbieters bereitstellen können.

Syntax

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
);

Parameter

[in, optional] pUiInfo

Ein Zeiger auf eine CREDUI_INFO Struktur, die Informationen zum Anpassen der Darstellung des angezeigten Dialogfelds enthält.

Wenn das hwndParent Element der CREDUI_INFO Struktur nicht NULL-ist, zeigt diese Funktion ein modales Dialogfeld an, das auf dem übergeordneten Fenster zentriert ist.

Wenn das hwndParent Element der CREDUI_INFO Struktur NULL-ist, zeigt die Funktion ein Dialogfeld an, das auf dem Bildschirm zentriert ist.

Diese Funktion ignoriert die hbmBanner Member der CREDUI_INFO Struktur.

[in] dwAuthError

Ein In Winerror.h definierter Windows-Fehlercode, der im Dialogfeld angezeigt wird. Wenn zuvor gesammelte Anmeldeinformationen ungültig waren, verwendet der Aufrufer diesen Parameter, um die Fehlermeldung von der API zu übergeben, die die Anmeldeinformationen (z. B. Winlogon) an diese Funktion gesammelt hat. Die entsprechende Fehlermeldung wird formatiert und im Dialogfeld angezeigt. Legen Sie den Wert dieses Parameters auf Null fest, um keine Fehlermeldung anzuzeigen.

[in, out] pulAuthPackage

Bei der Eingabe wird der Wert dieses Parameters verwendet, um das Authentifizierungspaket anzugeben, für das die Anmeldeinformationen im pvInAuthBuffer Puffer serialisiert werden. Wenn der Wert von pvInAuthBuffer-NULL- ist und das CREDUIWIN_AUTHPACKAGE_ONLY Flag im dwFlags Parameter festgelegt ist, müssen nur Anmeldeinformationsanbieter, die Anmeldeinformationen für das angegebene Authentifizierungspaket serialisieren können, aufgezählt werden.

Rufen Sie die LsaLookupAuthenticationPackage-Funktion auf, und verwenden Sie den Wert des AuthenticationPackage- Parameters dieser Funktion, um den entsprechenden Wert für diesen Parameter abzurufen.

Bei der Ausgabe gibt dieser Parameter das Authentifizierungspaket an, für das die Anmeldeinformationen im ppvOutAuthBuffer Puffer serialisiert werden.

[in, optional] pvInAuthBuffer

Ein Zeiger auf einen ANMELDEinformations-BLOB, der zum Auffüllen der Anmeldeinformationsfelder im Dialogfeld verwendet wird. Legen Sie den Wert dieses Parameters auf NULL- fest, um die Anmeldeinformationsfelder leer zu lassen.

[in] ulInAuthBufferSize

Die Größe des pvInAuthBuffer- Puffers in Byte.

[out] ppvOutAuthBuffer

Die Adresse eines Zeigers, der bei der Ausgabe das ANMELDEinformations-BLOB angibt. Rufen Sie für Kerberos-, NTLM- oder Aushandlungsanmeldeinformationen die CredUnPackAuthenticationBuffer--Funktion auf, um dieses BLOB in Zeichenfolgendarstellungen der Anmeldeinformationen zu konvertieren.

Wenn Sie die Verwendung des ANMELDEinformations-BLOB abgeschlossen haben, löschen Sie sie aus dem Arbeitsspeicher, indem Sie die SecureZeroMemory--Funktion aufrufen und freigeben, indem Sie die CoTaskMemFree-Funktion aufrufen.

[out] pulOutAuthBufferSize

Die Größe des ppvOutAuthBuffer- Puffers in Byte.

[in, out, optional] pfSave

Ein Zeiger auf einen booleschen Wert, der bei Eingaben angibt, ob das Kontrollkästchen speichern im dialogfeld aktiviert ist, das diese Funktion anzeigt. Bei der Ausgabe gibt der Wert dieses Parameters an, ob das Kontrollkästchen Speichern aktiviert wurde, wenn der Benutzer im Dialogfeld auf die Schaltfläche Absenden klickt. Legen Sie diesen Parameter auf NULL- fest, um das Kontrollkästchen Speichern zu ignorieren.

Dieser Parameter wird ignoriert, wenn das CREDUIWIN_CHECKBOX Flag nicht im dwFlags Parameter festgelegt ist.

[in] dwFlags

Ein Wert, der das Verhalten für diese Funktion angibt. Dieser Wert kann ein bitweiserODER Kombination aus einem oder mehreren der folgenden Werte sein.

Wert Bedeutung
CREDUIWIN_GENERIC
0x1
Der Aufrufer fordert an, dass der Anmeldeinformationsanbieter den Benutzernamen und das Kennwort in Nur-Text zurückgibt.

Dieser Wert kann nicht mit SECURE_PROMPTkombiniert werden.

CREDUIWIN_CHECKBOX
0x2
Das Kontrollkästchen Speichern wird im Dialogfeld angezeigt.
CREDUIWIN_AUTHPACKAGE_ONLY
0x10
Es sollten nur Anmeldeinformationsanbieter aufgelistet werden, die das vom pulAuthPackage Parameter angegebene Authentifizierungspaket unterstützen.

Dieser Wert kann nicht mit CREDUIWIN_IN_CRED_ONLYkombiniert werden.

CREDUIWIN_IN_CRED_ONLY
0x20
Es sollte nur die durch den pvInAuthBuffer Parameter für das durch den pulAuthPackage Parameter angegebene Authentifizierungspaket aufgelistet werden.

Wenn dieses Flag festgelegt ist und der pvInAuthBuffer Parameter NULL-ist, schlägt die Funktion fehl.

Dieser Wert kann nicht mit CREDUIWIN_AUTHPACKAGE_ONLYkombiniert werden.

CREDUIWIN_ENUMERATE_ADMINS
0x100
Anmeldeinformationsanbieter sollten nur Administratoren aufzählen. Dieser Wert ist nur für Benutzerkontensteuerungszwecke (User Account Control, UAC) vorgesehen. Es wird empfohlen, dass externe Aufrufer dieses Flag nicht festlegen.
CREDUIWIN_ENUMERATE_CURRENT_USER
0x200
Es sollten nur die eingehenden Anmeldeinformationen für das vom pulAuthPackage Parameter angegebene Authentifizierungspaket aufgelistet werden.
CREDUIWIN_SECURE_PROMPT
0x1000
Das Dialogfeld "Anmeldeinformationen" sollte auf dem sicheren Desktop angezeigt werden. Dieser Wert kann nicht mit CREDUIWIN_GENERICkombiniert werden.

Windows Vista: Dieser Wert wird ab Windows Vista mit SP1 unterstützt.

CREDUIWIN_PREPROMPTING
0x2000
Das Dialogfeld "Anmeldeinformationen" wird vom SspiPromptForCredentials--Funktion aufgerufen, und der Client wird vor einem vorherigen Handshake aufgefordert. Wenn SSPIPFC_NO_CHECKBOX im pvInAuthBuffer Parameter übergeben wird, sollte das Kontrollkästchen vom Anmeldeinformationsanbieter nicht angezeigt werden.

Windows Vista: Dieser Wert wird ab Windows Vista mit SP1 unterstützt.

0x40000
Der Anmeldeinformationsanbieter packt nicht den AAD-Autoritätsnamen. Dies wird nur auf in Azure AD eingebundene Geräte angewendet.

Windows 10, Version 1607: Dieser Wert wird ab Windows 10, Version 1607, unterstützt.

CREDUIWIN_PACK_32_WOW
0x10000000
Der Anmeldeinformationsanbieter sollte den Anmeldeinformations-BLOB ausrichten, auf den der ppvOutAuthBuffer Parameter verweist, an eine 32-Bit-Grenze, auch wenn der Anbieter auf einem 64-Bit-System ausgeführt wird.
0x80000000
Windows Hello-Anmeldeinformationen werden in einen Smartcard-Authentifizierungspuffer verpackt. Dies gilt nur für Gesichts-, Fingerabdruck- und PIN-Anmeldeinformationsanbieter.

Windows 10, Version 1809: Dieser Wert wird ab Windows 10, Version 1809, unterstützt.

Rückgabewert

Wenn die Funktion erfolgreich ist, gibt die Funktion ERROR_SUCCESSzurück. Wenn die Funktion vom Benutzer abgebrochen wird, wird ERROR_CANCELLEDzurückgegeben. Ein anderer Rückgabewert gibt an, dass die Funktion nicht geladen werden konnte.

Bemerkungen

Diese Funktion speichert keine Anmeldeinformationen.

Anwendungen, die SSPI- zum Authentifizieren von Benutzern verwenden, sollten diese Funktion nicht aufrufen. Rufen Sie stattdessen SspiPromptForCredentialsauf.

Anmerkung

Der wincred.h-Header definiert CredUIPromptForWindowsCredentials als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows Vista [nur Desktop-Apps]
mindestens unterstützte Server- Windows Server 2008 [Nur Desktop-Apps]
Zielplattform- Fenster
Header- wincred.h
Library Credui.lib
DLL- Credui.dll