System.Net.Cookie和System.Web.HttpCookie有什么区别,怎么相互转换。急!
我得到了一个System.Net.CookieCollection的实例cc,发现它是包含System.Net.Cookie的容器
foreach(System.Net.Cookie c in ccol)
{
Response.Cookies.Add(c);//我要输出这些Cookie,结果发现,支持的输出是System.Web.HttpCookie
//错误是指定的转换无效。谁知道System.Net.Cookie和System.Web.HttpCookie有什么区别,怎么相互转换。急!
}
问题点数:0、回复次数:27Top
1 楼bitsbird(一瓢 在路上...)回复于 2005-03-04 18:34:18 得分 0
在MSDN中有Internet API,就是定义在Wininet.pas中的函数。
其中有InternetSetCookie和InternetGetCookie,so....:)
注意:用InternetSetCookie如果没有设expire的话,程序退出Cookie就会过期。
Top
2 楼bitsbird(一瓢 在路上...)回复于 2005-03-04 18:34:48 得分 0
[DllImport("wininet.dll", CharSet=CharSet.Ansi)]
bool InternetSetCookie(string url, string name, string data);Top
3 楼cdo(Everything has a favourable turn)回复于 2005-03-04 18:41:51 得分 0
upTop
4 楼web_gus(树欲静而风不止)回复于 2005-03-04 19:31:20 得分 0
upTop
5 楼webdiyer(.net资源精华—www.dotneturls.com)回复于 2005-03-04 22:20:22 得分 0
System.Net.Cookie是表示客户端程序通过http响应接收到的Cookie,而System.Web.HttpCookie是服务器端通过http请求从客户端获取的Cookie,比如下面这个winform程序通过向指定的url发送包含cookie的web请求然后获取返回的响应的代码:
WebRequestObject = (HttpWebRequest) WebRequest.Create("http://www.webdiyer.com/cookietest.aspx");
WebRequestObject.Method = "GET";
System.Net.CookieContainer CookieContainerObject = new System.Net.CookieContainer();
System.Net.Cookie Cookie = new System.Net.Cookie();
Cookie.Name = "userid";
Cookie.Value = "1234567890";
Cookie.Domain = Request.ServerVariables["HTTP_HOST"];
Cookie.Secure = true;
CookieContainerObject.Add(Cookie);
WebRequestObject.CookieContainer = CookieContainerObject;
WebResponseObject = (HttpWebResponse) WebRequestObject.GetResponse();
sr = new StreamReader(WebResponseObject.GetResponseStream());
String Results = sr.ReadToEnd();
Top
6 楼cuike519(I will be back!)回复于 2005-03-05 02:46:22 得分 0
转换可能需要自己写!可以继承TypeConverter类来完成该方法!Top
7 楼zipo(程序员)回复于 2005-03-05 08:38:47 得分 0
markTop
8 楼webcookie()回复于 2005-03-05 10:30:23 得分 0
bitsbird(一瓢 单身走我路)
看不懂。
webdiyer(陕北吴旗娃)
我功力不够,怎么能把这个System.Net.Coolie写到客户端去呢。
cuike519(marshal(修练中...))
不太了解,自己写不出。
Top
9 楼wjcking()回复于 2005-03-05 11:50:24 得分 0
System.Net.Cookie是表示客户端程序通过http响应接收到的Cookie,而System.Web.HttpCookie是服务器端通过http请求从客户端获取的Cookie,比如下面这个winform程序通过向指定的url发送包含cookie的web请求然后获取返回的响应的代码:
WebRequestObject = (HttpWebRequest) WebRequest.Create("http://www.webdiyer.com/cookietest.aspx");
WebRequestObject.Method = "GET";
System.Net.CookieContainer CookieContainerObject = new System.Net.CookieContainer();
System.Net.Cookie Cookie = new System.Net.Cookie();
Cookie.Name = "userid";
Cookie.Value = "1234567890";
Cookie.Domain = Request.ServerVariables["HTTP_HOST"];
Cookie.Secure = true;
CookieContainerObject.Add(Cookie);
WebRequestObject.CookieContainer = CookieContainerObject;
WebResponseObject = (HttpWebResponse) WebRequestObject.GetResponse();
sr = new StreamReader(WebResponseObject.GetResponseStream());
String Results = sr.ReadToEnd();
Top
10 楼webcookie()回复于 2005-03-05 16:45:57 得分 0
没有人会把 System.Net.Cookie里面的内容写到
客户端去吗?Top
11 楼webcookie()回复于 2005-03-05 23:07:10 得分 0
upTop
12 楼webdiyer(.net资源精华—www.dotneturls.com)回复于 2005-03-06 09:47:26 得分 0
System.Net.Cookie 本来就是客户端程序管理的Cookie,写到客户端去是什么意思呢?
==================
www.webdiyer.comTop
13 楼webcookie()回复于 2005-03-06 10:05:36 得分 0
这么说吧。
比如你写的那一段程序是a.aspx
我现在要把这个Cookie写到,浏览此页(a.aspx)的客户机上。Top
14 楼webcookie()回复于 2005-03-06 13:38:09 得分 0
upTop
15 楼webdiyer(.net资源精华—www.dotneturls.com)回复于 2005-03-06 21:17:12 得分 0
这么说吧。
比如你写的那一段程序是a.aspx
我现在要把这个Cookie写到,浏览此页(a.aspx)的客户机上。
=================>
那应该是用System.Web.HttpCookie,而不是System.Net.CookieTop
16 楼webcookie()回复于 2005-03-06 22:51:12 得分 0
说的就是,我当然知道是System.Web.HttpCookie,可我要把a.aspx得到的这个
System.Net.Cookie写到客户端去。
怎么做我就不会了。Top
17 楼webdiyer(.net资源精华—www.dotneturls.com)回复于 2005-03-07 11:48:10 得分 0
System.Net.Cookie本来就是在客户端程序中存在的,不能说再发送到客户端,不知道你是怎么从a.aspx中获得System.Net.Cookie这个实例的?Top
18 楼webcookie()回复于 2005-03-07 13:26:02 得分 0
就是用webrequest,你不是也使那样获得的吗。
Top
19 楼webdiyer(.net资源精华—www.dotneturls.com)回复于 2005-03-07 19:17:00 得分 0
如果你是通过webrequest获取的cookie,那么使用这个方法的程序就是上面所指的客户端了,假如你是通过一个web项目或winform项目从另一台服务器用你所说的方法获取到cookie,那么获取cookie的这个项目所在的就是客户端了Top
20 楼webdiyer(.net资源精华—www.dotneturls.com)回复于 2005-03-07 19:21:14 得分 0
你可以通过我上面说的方法把这个cookie发回服务器端,而不能发向浏览这个服务器上web页面的另一个客户端。如果我理解有错的话请原谅!Top
21 楼nga96(因为我笨,所以努力。陈勇华)回复于 2005-03-07 19:41:40 得分 0
UPTop
22 楼webcookie()回复于 2005-03-08 09:10:51 得分 0
你可以通过我上面说的方法把这个cookie发回服务器端,而不能发向浏览这个服务器上web页面的另一个客户端。如果我理解有错的话请原谅!
我就是要向浏览这个服务器上web页面的那个客户端写Cookie。
这是saucer老大说的思路,但没有给方法。所以我才出来问。(学艺不精,没办法)。
难道还要去问saucer老大。Top
23 楼Montaque(每天回答两个问题)回复于 2005-03-08 10:48:34 得分 0
向浏览这个服务器上web页面的那个客户端写Cookie。
直接用script就可以
比如向会客户端请求中多一个cookie
Document.Cookie="Newcookie=Value"Top
24 楼chinasqf()回复于 2005-03-08 12:53:26 得分 0
mark
Top
25 楼lovelxj(伊斯人,吾谁与归)回复于 2005-03-08 13:11:40 得分 0
重写输出的部分应该可以实现咯Top
26 楼syeerzy(快乐永远*先天下之乐而乐*后天下之忧而忧*)回复于 2005-03-08 13:27:24 得分 0
把其中一个tostring(),然后赋值给另外一个不可以吗????
怎么越说越复杂?Top
27 楼webcookie()回复于 2005-03-08 15:12:12 得分 0
把其中一个tostring(),然后赋值给另外一个不可以吗????
怎么越说越复杂?
我也知道ToString(),就怕这样转换会丢失一些东西。
好吧,我先试一下,不行的话再去找saucerTop





