思归,孟子&其他高手,第一次取cookies值是乱码,第二次编译就对了。

shenanigan 2004-09-01 02:50:45
读取是这样的:

Server.HtmlDecode(Request.Cookies[i].Value.ToString());

写入是在ASP.NET中,写入后立即读取cookies值显示为乱码,重新编译后就可以读取正确值。

同时还想问问,如何检测客户端cookies是否允许读写,最好能有实例代码。
cookies删除应该怎么写,用
Response.Cookies.Remove("234");
or
Response.Cookies.Clear;
都不行。
...全文
191 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
jamzh 2004-09-01
  • 打赏
  • 举报
回复
学习~!
shenanigan 2004-09-01
  • 打赏
  • 举报
回复
删除已经可以实现了,奇怪的是第一次读取是乱码,而且总是最后一个写入的cookies是乱码。
zuoky 2004-09-01
  • 打赏
  • 举报
回复
同意SpbDev(急先锋)的说法!但我想问如果cookies过期是不是系统直接删除,还是只是浏览器不读呢?
egxsun 2004-09-01
  • 打赏
  • 举报
回复
mark
SpbDev 2004-09-01
  • 打赏
  • 举报
回复
Request.Browser.Cookies仅仅是返回用户浏览器本身(从技术上)是否支持cookie,而不是浏览器当前设置是否支持cookie。

比如可以试试将IE禁用cookie,返回的仍然是true。

检测是否真正支持,办法是先写一个cookie,在下一个页面检测是否存在这个cookie,存在自然是支持的。
goody9807 2004-09-01
  • 打赏
  • 举报
回复
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;
}
chagel 2004-09-01
  • 打赏
  • 举报
回复
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);
SpbDev 2004-09-01
  • 打赏
  • 举报
回复
删除cookie只要设置过期时间为现在时间之前的任意一个时间即可。
将cookie的内容设置为空字符串也是一个办法,不过不是真正的删除cookie。
vzxq 2004-09-01
  • 打赏
  • 举报
回复
up

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧