我正在编写服务,因此使用WinHTTP而不是WinInet。在阅读MSDN时,它讨论了如何设置WINHTTP_OPTION_USE_GLOBAL_SERVER_CREDENTIALS
(http://msdn.microsoft.com/en-us/library/windows/desktop/aa384066(v=vs.85).aspx)让WinHTTP从WinInet获取凭据。
现在我正在测试我的服务,并在用户上下文中运行它,并尝试使用基本身份验证对代理进行身份验证。由于我没有用户凭据的先验知识,我希望他们从WinInet传下来。我使用NULL
用户名和密码来调用WinHttpSetCredentials
并且没有成功。
bResults = WinHttpSetCredentials( hRequest,
dwTarget,
dwSelectedScheme,
NULL,
NULL,
NULL );
我也在设置注册表项 HKLM \ Software \ Microsoft \ Windows \ CurrentVersion \ Internet Settings \ ShareCredsWithWinHttp到DWORD值为1
并致电
BOOL bSetValue = TRUE;
if(!WinHttpSetOption(hSession,WINHTTP_OPTION_USE_GLOBAL_SERVER_CREDENTIALS,
&bSetValue,sizeof(bSetValue))){
printf("Setting options failed\n");
}else{
printf("Settings options success\n");
}
上面的代码看起来很好。
我似乎无法使用默认密码或从WinInet获取WinHttp的许多示例。有没有人有这方面或他们可以指向我的某个经验?感谢。