我想通过HTTP请求从我的服务器隧道到远程服务器,通过所有cookie.所以我创建了一个新HttpWebRequest对象,并希望在其上设置cookie.
HttpWebRequest.CookieContainer是System.Net.CookieContainer持有的类型System.Net.Cookies.
在我的传入请求对象上:
HttpRequest.Cookies是System.Web.HttpCookieCollection持有的类型System.Web.HttpCookies.
基本上我希望能够将它们分配给彼此,但不同的类型使它变得不可能.我是否必须通过复制它们的值来转换它们,还是有更好的方法?
所以我很困惑,因为msdn和其他教程告诉我使用HttpCookies通过Response.Cookies.Add(cookie)添加cookie.但这就是问题所在.Response.Cookies.Add只接受Cookies而不接受HttpCookies,我收到此错误:
无法从'System.Net.CookieContainer'转换为'System.Net.Cookie'
另外,Response.Cookies.Add(cookie)和Request.CookieContainer.Add(cookie)之间有什么区别?
感谢您的帮助,我正在尝试使用C#自学.
// Cookie
Cookie MyCookie = new Cookie();
MyCookie.Name = "sid";
MyCookie.Value = SID;
MyCookie.HttpOnly = true;
MyCookie.Domain = ".domain.com";
// HttpCookie
HttpCookie MyCookie = new HttpCookie("sid");
MyCookie.Value = SID;
MyCookie.HttpOnly = true;
MyCookie.Domain = ".domain.com";
Response.Cookies.Add(MyCookie);
Run Code Online (Sandbox Code Playgroud) 我注意到的一件事,但直到现在才正式提出来:System.Net命名空间和System.Web命名空间之间的类有什么区别?为什么它们都存在?它们似乎具有相同类/概念的不同实现(例如,Cookie,Mail,HttpWebRequest)。它们是否设计用于稍微不同的目的?还是旧式名称空间?