Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/147.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用C+读取cookie(客户端)+;_C++_Cookies_Client - Fatal编程技术网

C++ 使用C+读取cookie(客户端)+;

C++ 使用C+读取cookie(客户端)+;,c++,cookies,client,C++,Cookies,Client,我对Wininet dll的一些API调用感到非常困难。我正在尝试阅读IE 9设置的客户端cookies。这是密码 #include "stdafx.h" #include <Windows.h> #include <WinInet.h> #include <iostream> int _tmain(int argc, _TCHAR* argv[]) { LPTSTR lpData = NULL; DWOR

我对Wininet dll的一些API调用感到非常困难。我正在尝试阅读IE 9设置的客户端cookies。这是密码

     #include "stdafx.h"
     #include <Windows.h>
    #include <WinInet.h>
    #include <iostream>
    int _tmain(int argc, _TCHAR* argv[])
    {

LPTSTR lpData = NULL;
DWORD dwSz = 500; 
std::cout << "Hello Chris" << std::endl;
lpData = new TCHAR[dwSz];

std::wcout << "Arg 0: " << argv[1] << std::endl;


bool val = InternetGetCookieEx(argv[1], argv[2], lpData, &dwSz,  INTERNET_COOKIE_THIRD_PARTY | INTERNET_FLAG_RESTRICTED_ZONE, NULL);

    if (!val)
    {

        if (GetLastError() == ERROR_INSUFFICIENT_BUFFER)
        {
            std::cout << "Insufficent Buffer size" << std::endl;
            lpData = new TCHAR[dwSz];
            val = InternetGetCookieEx(argv[1], argv[2], lpData, &dwSz, INTERNET_COOKIE_THIRD_PARTY | INTERNET_FLAG_RESTRICTED_ZONE, NULL);
            if (val)
            {
                std::cout << "Cookie Data: " << lpData << std::endl;
            }
            else
            {
                std::cout << "ERROR Code: " << GetLastError() << std::endl;
            }
        }
        else 
        {
            int err = GetLastError();
            std::cout << "ERROR Code: " << err << std::endl;
        }
    }
    else
    {
                        std::cout << "Cookie Data: " << lpData << std::endl;
    }
//}


return 0;
#包括“stdafx.h”
#包括
#包括
#包括
int _tmain(int argc,_TCHAR*argv[]
{
LPTSTR lpData=NULL;
DWORD dwSz=500;

std::cout假设cookie名称正确,然后尝试删除
互联网cookie\u第三方和/或
互联网标志\u限制区
标志,看看会发生什么。或者尝试调用
InternetGetCookie()
,而该标志不可用


另一方面,当
InternetGetCookieEx()
返回
错误\u缓冲区不足
时,您正在泄漏内存。您需要
删除[]
现有缓冲区,然后再调用
新建[]
分配一个新的缓冲区。

假设cookie名称正确,然后尝试删除
INTERNET\u cookie\u第三方和/或
INTERNET\u FLAG\u RESTRICTED\u ZONE
标志,看看会发生什么。或者尝试调用没有此类标志的
InternetGetCookie()

另一方面,当
InternetGetCookieEx()
返回
错误\u缓冲区不足
时,您正在泄漏内存。您需要
删除[]
现有缓冲区,然后调用
新建[]
来分配新缓冲区。

尝试使用IEGetProtectedModeCookie


尝试使用IEGetProtectedModelCookie

嘿,我知道内存泄漏。坦率地说,我并不担心,这真的是一次性代码。这是用于确定某些东西如何工作的POC。因此,此代码实际上永远不会被使用。顺便说一句,在尝试InternetGetCookieEx之前,我已经尝试过InternetGetCookie不过,它产生了完全相同的结果。嘿,我知道内存泄漏。坦白说,我并不担心,这真的是一次性代码。这是用于确定某些东西如何工作的POC。因此,这段代码实际上永远不会被使用。顺便提一下。在尝试InternetGetCookieEx之前,我已经尝试过InternetGet但它产生了完全相同的结果。请在问题中包含来自链接的一些信息,因为链接有时会变得无效。请在问题中包含来自链接的一些信息,因为链接有时会变得无效。