关于Cookie登录的时间问题

snoopy83101 2010-02-04 09:16:31

public static void LoginIn(string adminName)
{
adminName = JiaMi.EnCode(adminName); //把字符串加密
HttpCookie ck = new HttpCookie("admin");
ck.Expires = DateTime.Now.AddMinutes(30); //DateTime.Now.AddDays(1);
ck.HttpOnly = false;
ck["admin"] = adminName;
HttpContext.Current.Response.AppendCookie(ck);
}


这个方法可以传入登录名,然后写入COOKIE登录,过期时间是30分钟,请问在这以后30分钟COOKIE是不是一定会过期?如果我一直不退出也会过期是吗?
如果是的话,怎么才能保持只要用户保持登录状态一直操作,就让COOKIE不停的刷新30分钟的过期时间呢? 难道要不断的写入COOKIE么?

...全文
202 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
JavaAlpha 2010-02-04
  • 打赏
  • 举报
回复
30 分钟后 没有操作 才会过期的。
snoopy83101 2010-02-04
  • 打赏
  • 举报
回复
谢谢楼上的,我就是想问COOKIE是不是这样而已。
dd__dd 2010-02-04
  • 打赏
  • 举报
回复
你的需求换成Session正好满足
丰云 2010-02-04
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 bwangel 的回复:]
不需要重复设置,只要用户在30分钟内有过操作,cookies就一直有效下去.
设置了过期时间,即使用户关掉了浏览器,在30分钟之内再打开同一网站,cookies也有效. CSDN的Cookies同理.

如果不设置过期时间,系统会把Cookies保存在IE的内存中,关掉IE就失效. 所以如果你不需要有CSDN的记住用户的功能,就不要设置过期时间.
[/Quote]
up
snoopy83101 2010-02-04
  • 打赏
  • 举报
回复
是不是不想让COOKIE过期,就在用户操作,比如刷新页面时,或者点击按钮时再次HttpContext.Current.Response.AppendCookie(ck);
刷新COOKIE的30分钟,COOKIE就会重新计算30分钟从上次操作开始。这样就不会过期了是吗?我想COOKIE应该不会自动完成这种操作,应该要人工的HttpContext.Current.Response.AppendCookie(ck);才可以。
guyehanxinlei 2010-02-04
  • 打赏
  • 举报
回复
UP
  • 打赏
  • 举报
回复
这个过期时间是滑动的,不是绝对的。也就是说,只要用户在30分钟内有操作,cookie就会再延时30分钟过期。
bwangel 2010-02-04
  • 打赏
  • 举报
回复
不需要重复设置,只要用户在30分钟内有过操作,cookies就一直有效下去.
设置了过期时间,即使用户关掉了浏览器,在30分钟之内再打开同一网站,cookies也有效. CSDN的Cookies同理.

如果不设置过期时间,系统会把Cookies保存在IE的内存中,关掉IE就失效. 所以如果你不需要有CSDN的记住用户的功能,就不要设置过期时间.
dls349920923 2010-02-04
  • 打赏
  • 举报
回复
顶下...
wiki14 2010-02-04
  • 打赏
  • 举报
回复

设置60个月以后过期

Response.Cookies("CookieName").Expires=DateAdd("m",60,now())

Response.Cookies("User").expires=second()+7

在expires后面定义的时间可以用时间函数代替
例如:
date()+7就表示在今天的时间上加上7天,而second()+7则是7秒了。
Response.Cookies("字段名").expires=时间函数+N,
例如:
Response.Cookies("name2").expires=date+1,表示Cookies保存1天,


wiki14 2010-02-04
  • 打赏
  • 举报
回复
Cookie是保存在客户端的,应该是无限制的。

HttpCookie mycookie=new HttpCookie("UserID");
mycookie.Value=UserID;
Response.Cookies.Add(mycookie);

Request.Cookies["UserID"].Value.ToString()

马老虎 2010-02-04
  • 打赏
  • 举报
回复
貌似CSDN 选择俩周不用登陆,等俩周后就得重新登录了。

我想应该是 不断的写入COOKIE。
看看其他高手怎么回答
wiki14 2010-02-04
  • 打赏
  • 举报
回复
沙发帮顶先~

62,046

社区成员

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

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

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

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