在C#中给Cookies的Value逗号的话,就会报错,然后在msdn上找到问题的答案,不允许使用逗号。http://msdn.microsoft.com/zh-cn/library/kesbe27x(VS.95).aspxC#
public Cookie(
string name,
string value
)
参数
name
类型:System.String
Cookie 的名称。name 参数不能包含下列字符:等号 (=)、分号 (;)、逗号 (,)、换行符 (\n)、回车符 (\r)、制表符 (\t) 和空格字符。美元符号 ($) 不能作为第一个字符。
value
类型:System.String
Cookie 的值。value 参数不能包含分号 (;) 或逗号 (,),除非它们包含在转义的双引号中。
异常
异常 条件
CookieException
name 为 null 引用(在 Visual Basic 中为 Nothing) 或空字符串 ("")。- 或 -name 包含未经授权的字符。使用以下字符之一将会导致异常:等号 (=)分号 (;)逗号 (,)换行符 (\n)回车符 (\r)制表符 (\t)空格字符美元符号 ($) 作为第一个字符- 或 -value 为 null 引用(在 Visual Basic 中为 Nothing),或者包含分号 (;) 或逗号 (,),而它们不包含在转义的双引号中。 备注 逗号字符保留用作同一行上各个 Cookie 之间的分隔符。下面的示例演示如何在 value 中使用逗号。System.Net.Cookie cookie = new System.Net.Cookie("cookieID", "\"123,456\"");但是这个是可以了,那我真正的Value值里面就有一个逗号,而没有被双引号包围的怎么办?System.Net.Cookie cookie = new System.Net.Cookie("cookieID", ",\"123,456\"");这个就报错,怎么办? 大家有什么办法?是不是要编码? 什么编码? Base64? 还是怎么办?
public Cookie(
string name,
string value
)
参数
name
类型:System.String
Cookie 的名称。name 参数不能包含下列字符:等号 (=)、分号 (;)、逗号 (,)、换行符 (\n)、回车符 (\r)、制表符 (\t) 和空格字符。美元符号 ($) 不能作为第一个字符。
value
类型:System.String
Cookie 的值。value 参数不能包含分号 (;) 或逗号 (,),除非它们包含在转义的双引号中。
异常
异常 条件
CookieException
name 为 null 引用(在 Visual Basic 中为 Nothing) 或空字符串 ("")。- 或 -name 包含未经授权的字符。使用以下字符之一将会导致异常:等号 (=)分号 (;)逗号 (,)换行符 (\n)回车符 (\r)制表符 (\t)空格字符美元符号 ($) 作为第一个字符- 或 -value 为 null 引用(在 Visual Basic 中为 Nothing),或者包含分号 (;) 或逗号 (,),而它们不包含在转义的双引号中。 备注 逗号字符保留用作同一行上各个 Cookie 之间的分隔符。下面的示例演示如何在 value 中使用逗号。System.Net.Cookie cookie = new System.Net.Cookie("cookieID", "\"123,456\"");但是这个是可以了,那我真正的Value值里面就有一个逗号,而没有被双引号包围的怎么办?System.Net.Cookie cookie = new System.Net.Cookie("cookieID", ",\"123,456\"");这个就报错,怎么办? 大家有什么办法?是不是要编码? 什么编码? Base64? 还是怎么办?
Response.Cookies.Add(VisitTime); 获取: Response.Write(Request.Cookies["TimeSelf"].Value)
如果一个cookie对象里面放多个值 添加: HttpCookie LaoNiu= new HttpCookie("People");
LaoNiu.Values["name"] = "老牛";
LaoNiu.Values["age"] = "23";
Response.Cookies.Add(LaoNiu); 获取: HttpCookie LaoNiu02= Request.Cookies["People"];
Response.Write(LaoNiu02.Values["name"]);
Response.Write(LaoNiu02.Values["age"]);
以上两种cookic都是即时的,也就是说当你关闭浏览器时候它就失效你也可以通过Expires设置失效日期或时间LaoNiu.Expires=System.DateTime.Now.AddMinutes(要设置的整形数据---分钟)
那我怎么把HttpCookie 放到CookieContainer中呢?
有什么问题啊,这个是MSDN上面的,可以通过~
CookieCollection cookie = new CookieCollection();
HttpCookie cookiea = new HttpCookie("name", "value");
cookie.Add(cookie); CookieContainer cookie1 = new CookieContainer();
cookie1.Add(cookie);
不对的地方还请包涵。
谢谢你啊,这个不对,CookieCollection这个的Add 里面也是要的是Cookie 不要HttpCookie。谢谢,还有什么别的方法吗?