Tag: cookiecontainer

使用相同的CookieContainer进行冲浪

如何在网站上浏览为每个Web请求分配相同的CookieContainer?

使.NET WebBrowser不与IE或其他实例共享cookie

由于C#中的WebBrowser与包括IE在内的所有其他WebBrowsers实例共享cookie,我希望WebBrowser拥有自己的cookie容器,该容器不共享之前在IE或其他实例中创建的任何cookie。 因此,例如,当我创建WebBrowser时,它不应该有任何cookie。 当我运行2个WebBrowsers实例时,它们拥有自己的cookie容器,并且不会彼此共享或冲突cookie。 我怎样才能做到这一点?

使用.net(C#)System.Net.Cookie处理cookie值中的逗号

我正在创建一个访问网站并登录的客户端+自动执行某些任务,但是他们最近更新了他们的cookie(无论出于何种原因……)在其标识cookie中包含逗号。 例如,Cookie将具有与此类似的值: a,bcdefghijklmnop 问题是,根据msdn,你不能在cookie的值内使用逗号或句点。 我正在寻找的方法是绕过这个限制,某种方式使.net的Cookie与逗号的工作很好。 我发现服务器确实向客户端发送了一个’SET-COOKIE’标题,我猜这是正在解析的内容,但这似乎也显然给commans和分号带来了特殊的意义(因此限制了.NET内部的类)。 但那么IE,Firefox等浏览器如何正确处理cookie(正如他们显然那样,因为网站在我测试过的任何浏览器中都能正常工作。)是否有办法强迫这个在.NET中的行为? 任何帮助将不胜感激,谢谢。 —编辑— 一些额外的信息: 我的代码看起来像这样: request = (HttpWebRequest)WebRequest.Create(URI); request.CookieContainer = Program.client.cookieJar; 其中cookieJar在Program.client中定义为: CookieContainer cookieJar = new CookieContainer(); 当我遍历并打印出CookieContainer中的所有Cookie时,我得到以下内容:( cookies,格式为:“name” – >“value”) “normal_cookie” -> “i am the value” “messedup_cookie” -> “a” “bcdefghijklmnop” -> “” // What I should get is this: “normal_cookie” -> “i am the value” “messedup_cookie” -> “a,bcdefghijklmnop” […]

使用HttpCookieCollection和CookieContainer发送cookie

我想通过HTTP请求从我的服务器隧道到远程服务器,并通过所有cookie。 所以我创建了一个新的HttpWebRequest对象,并希望在其上设置cookie。 HttpWebRequest.CookieContainer是System.Net.CookieContainer类型,它包含System.Net.Cookies 。 在我的传入请求对象上: HttpRequest.Cookies是System.Web.HttpCookieCollection类型,它包含System.Web.HttpCookies 。 基本上我希望能够将它们分配给彼此,但不同的类型使它变得不可能。 我是否必须通过复制它们的值来转换它们,还是有更好的方法?

如何获取CookieContainer的所有Cookie?

我想使用Newtonsoft.Json将CookieContainer导出为JSON,但遗憾的是CookieContainer没有枚举器或东西,所以我不能循环使用它… 编辑:使用我发布的解决方案,它将是这样的: private static void Main(string[] args) { CookieContainer cookieContainer = new CookieContainer(); cookieContainer.Add(new Cookie(“name1”, “value1”, “/”, “.testdomain1.com”)); cookieContainer.Add(new Cookie(“name2”, “value1”, “/path1/”, “.testdomain1.com”)); cookieContainer.Add(new Cookie(“name2”, “value1”, “/path1/path2/”, “.testdomain1.com”)); cookieContainer.Add(new Cookie(“name1”, “value1”, “/”, “.testdomain2.com”)); cookieContainer.Add(new Cookie(“name2”, “value1”, “/path1/”, “.testdomain2.com”)); cookieContainer.Add(new Cookie(“name2”, “value1”, “/path1/path2/”, “.testdomain2.com”)); CookieCollection cookies = GetAllCookies(cookieContainer); Console.WriteLine(JsonConvert.SerializeObject(cookies, Formatting.Indented)); Console.Read(); }

CookieContainer错误?

我很困惑CookieContainer如何处理域,所以我创建了这个测试。 此测试显示cookieContainer不返回“example.com”的任何cookie,但根据RFC,它应返回至少2个cookie。 这不是一个bug吗? 如何使它工作? 以下是对此错误的讨论: http://social.msdn.microsoft.com/Forums/en-US/ncl/thread/c4edc965-2dc2-4724-8f08-68815cf1dce6 CookieContainer getContainer() { CookieContainer result = new CookieContainer(); Uri uri = new Uri(“http://sub.example.com”); string cookieH = @”Test1=val; domain=sub.example.com; path=/”; result.SetCookies(uri, cookieH); cookieH = @”Test2=val; domain=.example.com; path=/”; result.SetCookies(uri, cookieH); cookieH = @”Test3=val; domain=example.com; path=/”; result.SetCookies(uri, cookieH); return result; } void Test() { CookieContainer cookie = getContainer(); lblResult.Text += “Total cookies […]

在WebBrowser中使用CookieContainer中的cookie

有没有办法可以实际使用cookie容器中的cookie(以前从WebRequest中获取)并在WebBrowser控件中使用它们? 如果是这样,我该怎么做? 这适用于C#中的Winforms应用程序。