SspiPromptForCredentialsA 函数 (sspi.h)

允许 安全支持提供程序接口 (SSPI) 应用程序提示用户输入凭据。

语法

unsigned long SEC_ENTRY SspiPromptForCredentialsA(
  [in]                PCSTR                           pszTargetName,
  [in]                PCREDUI_INFOA                   pUiInfo,
  [in]                unsigned long                   dwAuthError,
  [in]                PCSTR                           pszPackage,
  [in]                PSEC_WINNT_AUTH_IDENTITY_OPAQUE pInputAuthIdentity,
  [out]               PSEC_WINNT_AUTH_IDENTITY_OPAQUE *ppAuthIdentity,
  [in, out, optional] int                             *pfSave,
  [in]                unsigned long                   dwFlags
);

参数

[in] pszTargetName

要使用的目标的名称。

[in] pUiInfo

指向 CREDUI_INFO 结构的指针,该结构包含用于自定义此函数显示的对话框外观的信息。

如果 CREDUI_INFO 结构的 hwndParent 成员不为 NULL,则此函数将显示一个以父窗口为中心的模式对话框。

如果 CREDUI_INFO 结构的 hwndParent 成员为 NULL,则该函数将显示一个以屏幕为中心的对话框。

此函数忽略 CREDUI_INFO 结构的 hbmBanner 成员。

[in] dwAuthError

在 Winerror.h 中定义的 Windows 错误代码显示在对话框中。 如果以前收集的凭据无效,调用方使用此参数从收集凭据的 API 传递错误消息 (例如 Winlogon) 此函数。 相应的错误消息已设置格式并显示在对话框中。 将此参数的值设置为零,不显示任何错误消息。

[in] pszPackage

要使用的安全包的名称。

[in] pInputAuthIdentity

用于填充对话框中的凭据字段的标识结构。 若要将凭据字段留空,请将此参数的值设置为 NULL

[out] ppAuthIdentity

表示此函数收集的凭据的标识结构。

使用此结构后,通过调用 SspiFreeAuthIdentity 函数释放它。

[in, out, optional] pfSave

指向布尔值的指针,该布尔值在输入时指定是否在此函数显示的对话框中选中“保存检查框”。 输出时,此参数的值指定当用户单击对话框中的“提交”按钮时是否选择了“保存检查”框。 将此参数设置为 NULL 可忽略“保存检查”框。

如果未在 dwFlags 参数中设置CREDUIWIN_CHECKBOX标志,则忽略此参数。

[in] dwFlags

确定此函数行为的标志。 当前定义了以下标志。

含义
SSPIPFC_CREDPROV_DO_NOT_SAVE
0x00000001
将忽略 pfSave 参数的值,并且不会保存此函数收集的凭据。

Windows 7 和 Windows Server 2008 R2: 将忽略 pfSave 参数的值,并且不会保存此函数收集的凭据。 仅SSPIPFC_SAVE_CRED_BY_CALLER此可能值的名称。

SSPIPFC_NO_CHECKBOX
0x00000002
该值表示密码和智能卡凭据提供程序不会向用户显示“记住我的凭据”复选框。 SspiPromptForCredentials 函数在 CredUIPromptForWindowsCredentials 函数的 pvInAuthBuffer 参数中传递此标志值SSPIPFC_NO_CHECKBOX。

返回值

如果该函数成功,则返回 SEC_E_OK

如果函数失败,它将返回非零错误代码。

注解

注意

sspi.h 标头将 SspiPromptForCredentials 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定

要求

要求
最低受支持的客户端 Windows 7 [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 R2 [仅限桌面应用]
目标平台 Windows
标头 sspi.h
Library Credui.lib
DLL Credui.dll