Tag: cookies

如何使Gecko每个实例使用单独的CookieContainer?

由于.Net中的GeckoWebBrowser与GeckoWebBrowsers的所有其他实例共享cookie,我希望GeckoWebBrowser拥有它自己的cookie容器,该容器不共享之前在其他GeckoWebBrowsers或其他实例中创建的任何cookie。 因此,例如当我创建GeckoWebBrowser时,它不应该有任何cookie。 当我运行2个GeckoWebBrowser实例时,他们拥有自己的cookie容器,并且不会彼此共享或冲突cookie。 怎么可能?

在c#中读取cookie

我希望有人访问我的国际化网站,以便能够更改语言。 我认为最好的方法是存储在cookie中选择的语言 – 所以当页面加载时,它可以在cookie中查找首选语言。 编写cookie是完美的,但是我一直在尝试阅读它时遇到错误。 由于我是C#的新手,我在翻译错误时遇到了麻烦,视觉工作室向我投掷。 我想在名为lang的字符串中使用名为’UserSettings’的cookie的值。 我这样想: string lang = Request.Cookies[“UserSettings”].Value; 它抛出的错误是: 你调用的对象是空的 我认为问题必须在声明的右侧,因为我正在初始化左侧的字符串。 我也尝试过做一个cookie的实例 HttpCookie cookie = Request.Cookies[“UserSettings”].Value; 但是视觉工作室完全不喜欢这样。 我究竟做错了什么? 我是否必须创建Request对象的实例? 任何帮助,将不胜感激。 我正在关注这个主题的不同教程,但它们都会导致同样的错误。 编辑:我注意到了 HttpCookie cookie = Request.Cookies[“UserSettings”].Value; 我改成了: HttpCookie cookie = Request.Cookies[“UserSettings”]; 但没有运气,它仍然无法正常工作。 编辑:这是我的cookie的制作方式 public void Application_BeginRequest() { myCookie = new HttpCookie(“UserSettings”); myCookie.Value = “nl”; myCookie.Expires = DateTime.Now.AddDays(1); Response.Cookies.Add(myCookie); hc = new […]

C#WebClient登录accounts.google.com

我很难尝试使用webclient对accounts.google.com进行身份validation 我正在使用C#WebClient对象来实现以下function。 我将表单字段提交到https://accounts.google.com/ServiceLoginAuth?service=oz 这是POST字段: service=oz dsh=-8355435623354577691 GALX=33xq1Ma_CKI timeStmp= secTok= Email=test@test.xom Passwd=password signIn=Sign in PersistentCookie=yes rmShown=1 现在,在我提交数据之前加载登录页面时,它有以下标题: Content-Type text/html; charset=UTF-8 Strict-Transport-Security max-age=2592000; includeSubDomains Set-Cookie GAPS=1:QClFh_dKle5DhcdGwmU3m6FiPqPoqw:SqdLB2u4P2oGjt_x;Path=/;Expires=Sat, 21-Dec-2013 07:31:40 GMT;Secure;HttpOnly Cache-Control no-cache, no-store Pragma no-cache Expires Mon, 01-Jan-1990 00:00:00 GMT X-Frame-Options Deny X-Auto-Login realm=com.google&args=service%3Doz%26continue%3Dhttps%253A%252F%252Faccounts.google.com%252FManageAccount Content-Encoding gzip Transfer-Encoding chunked Date Thu, 22 Dec 2011 07:31:40 GMT X-Content-Type-Options nosniff X-XSS-Protection […]

ASP.NET Core 2.0 Preview 1:如何使用自定义登录路径设置Cookie身份validation

在ASP.NET Core 2.0中,.UseAuthentication()中间件有一个重大更改,不再允许此处提到的旧语法工作。 新版本似乎在addAuthentication中处理配置,但我无法在任何地方找到有关如何更改指定自定义登录和注销URL的旧代码的任何详细信息。 services.AddAuthentication(o => { // Where can I specify this????? var opt = new CookieAuthenticationOptions() { LoginPath = “/api/login”, LogoutPath = “/api/logout”, }; o.DefaultSignInScheme = CookieAuthenticationDefaults.AuthenticationScheme; o.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme; }); 任何帮助,将不胜感激…

使用HttpCookieCollection和CookieContainer发送cookie

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

C#:将CookieContainer写入磁盘并重新加载以供使用

我有一个名为CookieJar的HttpWebRequest / HttpWebResponse会话中提取的CookieContainer 。 我希望我的应用程序在运行之间存储cookie,因此在一次运行程序中在CookieContainer收集的cookie也将在下一次运行时使用。 我认为这样做的方法是以某种方式将CookieContainer的内容写入磁盘。 我的问题是: 如何将CookieContainer写入磁盘 ? 是否有内置function,或者,如果没有,人们采取了哪些方法? 有没有可用于简化此类的课程? 一旦你将CookieContainer写入磁盘, 你如何重新加载它 ? 更新:第一个答案建议CookieContainer 序列化 。 但是,我不太熟悉如何序列化和反序列化这些复杂的对象。 你能提供一些示例代码吗? 建议是使用SOAPFormatter 。

如何解析HttpWebResponse.Headers.Keys返回的Set-Cookie会话ID

我正在尝试使用ASP.NET网站创建一个HttpWebRequest / HttpWebResponse会话,以便稍后通过url params解析HTML表单(这部分我知道该怎么做),但我不明白如何解析和设置cookie如会话ID。 在Fiddler中,它显示ASP.NET会话ID是在对URL的/ path请求的响应中通过Set-Cookie返回的,但是如何提取此会话ID并将其设置为下一个HttpWebRequest的cookie ? 我知道这个Set-Cookie标头可以在HttpWebResponse.Headers.Keys中找到,但有解析它的直接路径吗? 谢谢!

在内容页面之间遍历时,cookie值会消失

在我的应用程序中 有一个登录机制,用于保存一个cookie,其中包含刚刚登录的用户的信息 private void CreateCookie(LoginEventArgs args) { HttpCookie cookie = new HttpCookie(“user”); cookie.Values[“name”] = args.User_Name; cookie.Values[“id”] = args.ID; cookie.Expires = DateTime.Now.AddDays(1); Response.Cookies.Add(cookie); } 在我的母版页面加载我执行检查以查看此cookie是否存在: HttpCookie cookie = Request.Cookies[“user”] ; if( (cookie != null) && (cookie.Value != “”)) { if (Session[“user”] == null) Login_Passed(this, new LoginEventArgs(cookie.Values[“name”].ToString(), int.Parse(cookie.Values[“id”]))); } 现在如果我登录(创建一个cookie),关闭浏览器,然后运行我的应用程序。 再次,cookie存在,它的值是正确的,用户“自动”登录。 如果我首先从启动内容页面重定向到不同的内容页面,则cookie值也完好无损, 问题是当我第二次重定向回到不同的内容页面时,主页面加载,检查cookie是否存在但值被删除… 关于为什么会这样的想法? 也许我退出的方式可能是这个问题的原因: 当我注销时,我创建一个与1天前相同名称的cookie。 private […]

更改已存在的cookie的cookie值

我有一个叫做SurveyCookie的cookie。 像这样创建: var cookie = new HttpCookie(“SurveyCookie”); cookie.Values[“surveyPage”] = “1”; cookie.Values[“surveyId”] = “1”; cookie.Values[“surveyTitle”] = “Definietly not an NSA Survey….”; cookie.Values[“lastVisit”] = DateTime.UtcNow.ToString(); cookie.Expires = DateTime.UtcNow.AddDays(30); Response.Cookies.Add(cookie); 哪个效果很好。 现在问题就出现了,我想像这样更改值“surveyPage”。 下面将创建一个新的cookie,这不是我想要的。 int cookieValue = Convert.ToInt32(Request.Cookies[“SurveyCookie”][“surveyPage”]) + 1; Response.Cookies[“SurveyCookie”][“surveyPage”] = cookieValue.ToString(); 然后我尝试下面的代码也不起作用。 调查页面仍然是1,应该是2。 Request.Cookies[“SurveyCookie”][“surveyPage”] = cookieValue.ToString(); 由于上述两种方法都没有改变surveyPage的cookie值?

从httpwebrequest获取cookie

我正在尝试使用此代码从网站获取所有Cookie CookieContainer cookieJar = new CookieContainer(); var request = (HttpWebRequest)HttpWebRequest.Create(“http://www.foetex.dk/ugenstilbud/Pages/Zmags.aspx”); request.CookieContainer = cookieJar; var response = request.GetResponse(); foreach (Cookie c in cookieJar.GetCookies(request.RequestUri)) { Console.WriteLine(“Cookie[‘” + c.Name + “‘]: ” + c.Value); } Console.ReadLine(); 我唯一想要的是用console.writeline显示,但我没有得到它们中的一个。