C# 使用HttpWebRequest获取HttpOnly cookies

C# 使用HttpWebRequest获取HttpOnly cookies,c#,cookies,httpwebrequest,C#,Cookies,Httpwebrequest,我正在尝试使用.NET的HttpWebRequest POST方法(代码是用C#编写的)以编程方式登录站点。最初,我将请求发送到登录页面,将响应cookie保存到CookieContainer,并使用登录详细信息(email=“MyEmail”&pass=“MyPassword”)进行第二次HttpWebRequest编码并流式发送到请求 由于我没有登录,我使用Fiddler检查了登录请求附带的cookies,发现有些cookies标记为HttpOnly。也就是说,这些cookie不会出现在以前

我正在尝试使用.NET的HttpWebRequest POST方法(代码是用C#编写的)以编程方式登录站点。最初,我将请求发送到登录页面,将响应cookie保存到CookieContainer,并使用登录详细信息(email=“MyEmail”&pass=“MyPassword”)进行第二次HttpWebRequest编码并流式发送到请求

由于我没有登录,我使用Fiddler检查了登录请求附带的cookies,发现有些cookies标记为HttpOnly。也就是说,这些cookie不会出现在以前请求的任何响应头中(不用说它们也不会出现在脚本中(html或js))

我做了一些研究,并将Wininet.dll库导入到我的代码中,如前所述。 这是我的密码:

class CookieReader
{
    static int INTERNET_COOKIE_HTTPONLY = 0X000020000;

    [DllImport("Wininet.dll", SetLastError = true)]

    static extern bool InternetGetCookieEx(string url, string cookieName, StringBuilder cookieData, ref int size, int flags, IntPtr pReserved);

    public static string GetHttpOnly(string url)
    {
        int size = 1024;
        StringBuilder builder = new StringBuilder(size);
        if (InternetGetCookieEx(url, null, builder, ref size, INTERNET_COOKIE_HTTPONLY, IntPtr.Zero))
        {
            return builder.ToString();
        }

        else
            return null;
    }
}
我有两个问题: 首先,对于任何URL,InternetGetCookieesEx方法总是返回false。由于我是C#新手,我的第一个怀疑是我的代码有问题

其次,我想不出一种将HttpWebRequest帖子与InternetGetCookieEx方法相结合的方法。这个方法只获取一个url作为参数,没有任何登录详细信息,我不知道它是如何发出请求的(我想是这样的)

我希望我已经清楚了。。。我们将非常感谢您的建议