描述
WinHttpQueryAuthSchemes函数返回服务器支持的授权方案。
C / C ++语法
BOOL WinHttpQueryAuthSchemes( HINTERNET hRequest, LPDWORD lpdwSupportedSchemes, LPDWORD lpdwFirstScheme, LPDWORD pdwAuthTarget ); |
PowerBASIC 语法
FUNCTION WinHttpQueryAuthSchemes ( _ BYVAL hRequest AS DWORD, _ BYREF lpdwSupportedSchemes AS DWORD, _ BYREF lpdwFirstScheme AS DWORD, _ BYREF pdwAuthTarget AS DWORD _ ) AS LONG |
参数
hRequest
[in]WinHttpOpenRequest返回的HINTERNET句柄有效
lpdwSupportedSchemes
[out]无符号整数,指定包含支持的认证方案的标志。此参数可以返回下表中标识的一个或多个标志。
WINHTTP_AUTH_SCHEME_BASIC
表示基本认证可用。
WINHTTP_AUTH_SCHEME_NTLM
表示NTLM身份验证可用。
WINHTTP_AUTH_SCHEME_PASSPORT
表示可以使用护照验证。
WINHTTP_AUTH_SCHEME_DIGEST
表示摘要认证可用。
WINHTTP_AUTH_SCHEME_NEGOTIATE
在NTLM和Kerberos身份验证之间进行选择。
lpdwFirstScheme
[out]一个无符号整数,指定包含服务器列出的第一个认证方案的标志。此参数可以返回下表中标识的一个或多个标志。
WINHTTP_AUTH_SCHEME_BASIC
表示基本认证是第一。
WINHTTP_AUTH_SCHEME_NTLM
表示NTLM身份验证是第一个。
WINHTTP_AUTH_SCHEME_PASSPORT
表示首先认证护照。
WINHTTP_AUTH_SCHEME_DIGEST
表示摘要认证是第一。
WINHTTP_AUTH_SCHEME_NEGOTIATE
在NTLM和Kerberos身份验证之间进行选择。
pdwAuthTarget
[out]一个无符号整数,指定包含身份验证目标的标志。此参数可以返回下表中标识的一个或多个标志。
WINHTTP_AUTH_TARGET_SERVER
认证目标是服务器。表示已收到401状态码。
WINHTTP_AUTH_TARGET_PROXY
认证目标是代理。表示已接收到407状态代码。
返回值
如果成功返回TRUE,如果不成功则返回FALSE。要获取扩展错误信息,请调用GetLastError.下表列出了返回的错误代码。
错误代码 |
描述 |
ERROR_WINHTTP_INCORRECT_HANDLE_TYPE |
提供的手柄类型对于此操作是不正确的。 |
ERROR_WINHTTP_INTERNAL_ERROR |
发生内部错误。 |
ERROR_NOT_ENOUGH_MEMORY |
没有足够的内存来完成请求的操作。(Windows错误代码) |
备注
即使在异步模式下使用WinHTTP(即,当WinHttpOpen中设置了WINHTTP_FLAG_ASYNC时),此函数同步运行。返回值表示成功或失败。要获取扩展错误信息,请调用GetLastError.
WinHttpQueryAuthSchemes在调用WinHttpQueryHeaders之前无法使用。