获取WinHTTP以使用WinInet中的凭据

时间:2013-07-30 20:17:33

标签: c++ c winapi credentials winhttp

我正在编写服务,因此使用WinHTTP而不是WinInet。在阅读MSDN时,它讨论了如何设置WINHTTP_OPTION_USE_GLOBAL_SERVER_CREDENTIALShttp://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的许多示例。有没有人有这方面或他们可以指向我的某个经验?感谢。

0 个答案:

没有答案