使用当前用户凭据发送 WinHTTP 请求
Send WinHTTP request using current user credentials
根据 MSDN,WinHttpSetCredentials
要求您指定准确的用户名和密码。
有没有办法使用当前用户凭据?
无需指定用户名和密码,即。
当我发送请求时,我收到 401
响应。 (服务器是 IIS,使用 NTLM Windows 身份验证。)
我尝试按照 MSDN 的示例 here,但该示例需要给定用户名和密码。
编辑:为了让事情更清楚,我目前使用的代码类似于此处显示的代码:
工作中有人提供了答案:
// Send a request.
if (hRequest)
{
DWORD logonPolicy = WINHTTP_AUTOLOGON_SECURITY_LEVEL_LOW;
BOOL fRet = WinHttpSetOption ( hRequest,
WINHTTP_OPTION_AUTOLOGON_POLICY,
(LPVOID*) &logonPolicy,
sizeof(logonPolicy));
bResults = WinHttpSendRequest( hRequest,
WINHTTP_NO_ADDITIONAL_HEADERS,
0, WINHTTP_NO_REQUEST_DATA, 0,
0, 0);
}
根据 MSDN,WinHttpSetCredentials
要求您指定准确的用户名和密码。
有没有办法使用当前用户凭据?
无需指定用户名和密码,即。
当我发送请求时,我收到 401
响应。 (服务器是 IIS,使用 NTLM Windows 身份验证。)
我尝试按照 MSDN 的示例 here,但该示例需要给定用户名和密码。
编辑:为了让事情更清楚,我目前使用的代码类似于此处显示的代码:
工作中有人提供了答案:
// Send a request.
if (hRequest)
{
DWORD logonPolicy = WINHTTP_AUTOLOGON_SECURITY_LEVEL_LOW;
BOOL fRet = WinHttpSetOption ( hRequest,
WINHTTP_OPTION_AUTOLOGON_POLICY,
(LPVOID*) &logonPolicy,
sizeof(logonPolicy));
bResults = WinHttpSendRequest( hRequest,
WINHTTP_NO_ADDITIONAL_HEADERS,
0, WINHTTP_NO_REQUEST_DATA, 0,
0, 0);
}