当前位置: 首页 > 编程语言 > C#

使用HttpCookieCollection和CookieContainer发送cookie分享

时间:2023-04-10 20:54:38 C#

C#学习教程:使用HttpCookieCollection和CookieContainer发送Cookie所以我创建了一个新的HttpWebRequest对象并想在其上设置一个cookie。HttpWebRequest.CookieContainer属于System.Net.CookieContainer类型,其中包含System.Net.Cookies。在我传入的请求对象上:HttpRequest.Cookies是System.Web.HttpCookieCollection类型,其中包含System.Web.HttpCookies。基本上我希望能够将它们分配给彼此,但不同的类型使这成为不可能。我是否必须通过复制它们的值来转换它们,还是有更好的方法?这是我用来将cookie对象从传入请求传输到新的HttpWebRequest的代码...(“myRequest”是我的HttpWebRequest对象的名称。)HttpCookieCollectionoCookies=Request.Cookies;for(intj=0;j我今天需要为使用基于表单的身份验证(FBA)的SharePoint站点执行此操作。如果您尝试在不克隆cookie和分配CookieContainer对象的情况下调用应用程序页面,请求将失败。我选择将这项工作抽象到这个方便的扩展方法中:如果(sourceCookies.Count==0)返回null;else{CookieContainercookieContainer=newCookieContainer();for(inti=0;i然后,您可以从任何HttpRequest对象调用它,并将目标HttpWebRequest对象作为参数,例如:HttpWebRequestrequest;request=(HttpWebRequest)WebRequest.Create(TargetUrl);request.Method="GET";request.Credentials=CredentialCache.DefaultCredentials;request.CookieContainer=SourceRequest.GetCookieContainer(request);request.BeginGetResponse(null,null);其中TargetUrl是我要访问的页面的Url,SourceRequest是我访问的页面的HttpRequest'mcurrentlyon,retrieveviaPage.Request.David的建议是正确的。你需要复制。只需创建一个重复复制的函数。创建HttpCookie和Cookie对象确保我们可以区分其功能和来源。HttpCookie之间使用用户和您的代理Cookie在您的代理和远程Web服务器之间使用。HttpCookie功能较少,因为cookie源自您,您知道如何处理它。Cookies允许您管理从网络服务器收到的cookies。与CookieContainer一样,它可用于管理域、路径和过期时间。所以,客户端和web服务器端是不同的,连接它,确保你需要转换它。在您的情况下,这只是直接分配。请注意,CookieContainer在.Add(Cookie)和.GetCookies(uri)方法上存在错误。请在此处查看详细信息并修复:http://dot-net-expertise.blogspot.com/2009/10/cookiecontainer-domain-handling-bug-fix.htmlCallMeLaNN这就是C#学习教程:使用HttpCookieCollection和CookieContainer发送所有cookies分享的内容,如果对您有用,需要了解更多C#学习教程,希望您多多关注---本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: