CredUIPromptForWindowsCredentialsA-Funktion (wincred.h)

Die CredUIPromptForWindowsCredentials-Funktion erstellt und zeigt ein konfigurierbares Dialogfeld an, mit dem Benutzer Anmeldeinformationen mithilfe eines beliebigen 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 Dialogfelds enthält, das von dieser Funktion angezeigt wird.

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-StrukturNULL ist, zeigt die Funktion ein Dialogfeld zentriert auf dem Bildschirm an.

Diese Funktion ignoriert das hbmBanner-Element 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, übergibt der Aufrufer diesen Parameter, um die Fehlermeldung von der API zu übergeben, die die Anmeldeinformationen (z. B. Winlogon) gesammelt hat, an diese Funktion. 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 pvInAuthBufferNULL ist und das CREDUIWIN_AUTHPACKAGE_ONLY-Flag im dwFlags-Parameter festgelegt ist, müssen nur Anmeldeinformationsanbieter aufgelistet werden, die Anmeldeinformationen für das angegebene Authentifizierungspaket serialisieren können.

Um den entsprechenden Wert abzurufen, der für diesen Parameter bei der Eingabe verwendet werden soll, rufen Sie die LsaLookupAuthenticationPackage-Funktion auf, und verwenden Sie den Wert des AuthenticationPackage-Parameters dieser Funktion.

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 ein Anmeldeinformationsblob, das 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 Bytes.

[out] ppvOutAuthBuffer

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

Wenn Sie die Verwendung des Blobs für Anmeldeinformationen abgeschlossen haben, löschen Sie es aus dem Arbeitsspeicher, indem Sie die SecureZeroMemory-Funktion aufrufen, und geben Sie sie frei, indem Sie die CoTaskMemFree-Funktion aufrufen.

[out] pulOutAuthBufferSize

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

[in, out, optional] pfSave

Ein Zeiger auf einen booleschen Wert, der bei der Eingabe angibt, ob das Kontrollkästchen Speichern im Von dieser Funktion angezeigten Dialogfeld aktiviert ist. 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 Übermitteln 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 eine bitweise-OR-Kombination aus einem oder mehreren der folgenden Werte sein.

Wert Bedeutung
CREDUIWIN_GENERIC
0x1
Der Aufrufer fordert den Anmeldeinformationsanbieter auf, den Benutzernamen und das Kennwort in Nur-Text zurückzugeben.

Dieser Wert kann nicht mit SECURE_PROMPT kombiniert 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_ONLY kombiniert werden.

CREDUIWIN_IN_CRED_ONLY
0x20
Es sollten nur die Anmeldeinformationen aufgelistet werden, die vom parameter pvInAuthBuffer für das durch den pulAuthPackage-Parameter angegebene Authentifizierungspaket angegeben wurden.

Wenn dieses Flag festgelegt ist und der parameter pvInAuthBufferNULL ist, schlägt die Funktion fehl.

Dieser Wert kann nicht mit CREDUIWIN_AUTHPACKAGE_ONLY kombiniert werden.

CREDUIWIN_ENUMERATE_ADMINS
0x100
Anmeldeinformationsanbieter sollten nur Administratoren auflisten. Dieser Wert ist nur für UAC-Zwecke (User Account Control) vorgesehen. Externe Aufrufer sollten dieses Flag nicht festlegen.
CREDUIWIN_ENUMERATE_CURRENT_USER
0x200
Es sollten nur die eingehenden Anmeldeinformationen für das durch den 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_GENERIC kombiniert werden.

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

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

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

0x40000
Der Anmeldeinformationsanbieter packt den Namen der AAD-Autorität nicht. 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 das Anmeldeinformationsblob, auf das der ppvOutAuthBuffer-Parameter verweist, an einer 32-Bit-Grenze ausrichten, auch wenn der Anbieter auf einem 64-Bit-System ausgeführt wird.
0x80000000
Windows Hello Anmeldeinformationen werden in einen smarten Karte Authentifizierungspuffer gepackt. Dies gilt nur für die Anbieter von Gesichts-, Fingerabdruck- und PIN-Anmeldeinformationen.

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_SUCCESS zurück. Wenn die Funktion vom Benutzer abgebrochen wird, gibt sie ERROR_CANCELLED zurück. Jeder andere Rückgabewert gibt an, dass die Funktion nicht geladen werden konnte.

Hinweise

Diese Funktion speichert keine Anmeldeinformationen.

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

Hinweis

Der wincred.h-Header definiert CredUIPromptForWindowsCredentials als Alias, der automatisch die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit nicht codierungsneutralem Code 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
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile wincred.h
Bibliothek Credui.lib
DLL Credui.dll