思归,孟子&其他高手,第一次取cookies值是乱码,第二次编译就对了。
读取是这样的:
Server.HtmlDecode(Request.Cookies[i].Value.ToString());
写入是在ASP.NET中,写入后立即读取cookies值显示为乱码,重新编译后就可以读取正确值。
同时还想问问,如何检测客户端cookies是否允许读写,最好能有实例代码。
cookies删除应该怎么写,用
Response.Cookies.Remove("234");
or
Response.Cookies.Clear;
都不行。
问题点数:50、回复次数:9Top
1 楼vzxq(灵感人)回复于 2004-09-01 14:55:59 得分 1
upTop
2 楼SpbDev(急先锋)回复于 2004-09-01 15:12:31 得分 0
删除cookie只要设置过期时间为现在时间之前的任意一个时间即可。
将cookie的内容设置为空字符串也是一个办法,不过不是真正的删除cookie。Top
3 楼chagel(Mike in Shanghai)回复于 2004-09-01 15:21:21 得分 5
2。
if (Request.Browser.Cookies == true)
{
//...
}
3。用Expires 属性:
DateTime dt = DateTime.Now;
TimeSpan ts = new TimeSpan(0,0,10,0);
MyCookie.Expires = dt.Add(ts);
Top
4 楼goody9807(http://goody9807.cnblogs.com)回复于 2004-09-01 15:39:28 得分 5
HttpCookie cookie = new HttpCookie("MyCookie",str);
cookie.Expires = DateTime.Now.AddMinutes(20); // 有效时间20分
Response.Cookies.Add(cookie);
Response.Redirect("..."); // 重定向
然后是删除
Response.Cookies.Remove("MyCookie");
Response.Redirect("....") // 转向
无论是添加Cookie还是移除,都不执行。请问解决方案。
HttpCookie cookie = Request.Cookies[strKey];
if(null == cookie)
{
//cookie不存在
}
先看看有没有写入客户端
cookie=new HttpCookie("www.xx.org");
cookie.Values.Add("UserType", ddlLoginType.SelectedItem.Value);
cookie.Values.Add("UserName", tbUserName.Text.Trim());
cookie.Values.Add("Password", tbPassword.Text.Trim());
cookie.Values.Add("Access",i.ToString());
Response.AppendCookie(cookie);
//检查COOKIE是否已经写入浏览器
cookie = Request.Cookies["www.xx.org"];
if(cookie==null||cookie.ToString()=="")
{
//用session存储
LoginUser loginUser = new LoginUser();
loginUser.UserName = tbUserName.Text.Trim();
loginUser.Password = tbPassword.Text.Trim();
loginUser.UserType = ddlLoginType.SelectedItem.Value;
loginUser.Access = i;
Session["www.xx.org"] = loginUser;
}Top
5 楼SpbDev(急先锋)回复于 2004-09-01 15:51:57 得分 30
Request.Browser.Cookies仅仅是返回用户浏览器本身(从技术上)是否支持cookie,而不是浏览器当前设置是否支持cookie。
比如可以试试将IE禁用cookie,返回的仍然是true。
检测是否真正支持,办法是先写一个cookie,在下一个页面检测是否存在这个cookie,存在自然是支持的。Top
6 楼egxsun(egxsun)回复于 2004-09-01 16:00:16 得分 2
markTop
7 楼zuoky(zuoky)回复于 2004-09-01 17:04:18 得分 5
同意SpbDev(急先锋)的说法!但我想问如果cookies过期是不是系统直接删除,还是只是浏览器不读呢?
Top
8 楼shenanigan(宝宝)回复于 2004-09-01 17:15:23 得分 0
删除已经可以实现了,奇怪的是第一次读取是乱码,而且总是最后一个写入的cookies是乱码。Top
9 楼jamzh(Show me the money!!!)回复于 2004-09-01 17:16:46 得分 2
学习~!Top




