Form验证,怎么实现页面无操作一段时候后才过期

情天玄月 2013-03-30 10:07:04
我用的是Form登录,我想在有请求时如果cookie 的过期时间小于10min重新更改cookie的过期时间。但是cookie的过期时间无法获取!怎么实现页面无操作一段时候后才过期。。
...全文
329 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
情天玄月 2013-03-30
  • 打赏
  • 举报
回复
哈哈!问题自己解决了!!在Web.config 的forms标签中加入 slidingExpiration="true" 就行了 ,不用再手动修改coockie的过期时间了!!
情天玄月 2013-03-30
  • 打赏
  • 举报
回复
发现个问题 8楼 咋没了??
情天玄月 2013-03-30
  • 打赏
  • 举报
回复
引用 7 楼 KarasCanvas 的回复:
单是修改过期时间没用的,要重新"添加"到Response里...
呃~应该是这样~重新发送个验证票。。我试试
种草德鲁伊 2013-03-30
  • 打赏
  • 举报
回复
单是修改过期时间没用的,要重新"添加"到Response里...
情天玄月 2013-03-30
  • 打赏
  • 举报
回复
引用 5 楼 qt_xy 的回复:
没源码 没真相 这是登录成功后发放的验证票,过期时间为20min: C# code ? 12345678 //验证票 //System.Web.Security.FormsAuthentication.SetAuthCookie(this.tbLoginName.Text,true); //Crea……
结果是不管页面有没有请求到20min就过期了。。。
情天玄月 2013-03-30
  • 打赏
  • 举报
回复
没源码 没真相 这是登录成功后发放的验证票,过期时间为20min:
//验证票
                //System.Web.Security.FormsAuthentication.SetAuthCookie(this.tbLoginName.Text,true);
                //Create ticket
                FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, tbLoginName.Text, DateTime.Now, DateTime.Now.AddMinutes(20), true, "");
                //Encrypt the ticket.
                String encTicket = FormsAuthentication.Encrypt(ticket);
                //Create the cookie.
                Response.Cookies.Add(new HttpCookie(FormsAuthentication.FormsCookieName, encTicket));
这是每次请求时执行
TimeSpan ts = System.Web.HttpContext.Current.Request.Cookies[System.Web.Security.FormsAuthentication.FormsCookieName].Expires - DateTime.Now;
                if (ts.TotalMinutes < 10)
                {
                    System.Web.HttpContext.Current.Request.Cookies[System.Web.Security.FormsAuthentication.FormsCookieName].Expires = DateTime.Now.AddMinutes(20);
                    System.Web.HttpContext.Current.Request.Cookies["loginInfo"].Expires=DateTime.Now.AddMinutes(20);
                }
结果是不管有页面没有请求到20min就过期了。。
情天玄月 2013-03-30
  • 打赏
  • 举报
回复
引用 3 楼 KarasCanvas 的回复:
cookie的过期时间设置为固定值,每次请求时renew cookie的过期时间,以上。
我已经这样做了,还是不行,也许和Form验证登录有关。FormsAuthenticationTicket 验证票过期。。
种草德鲁伊 2013-03-30
  • 打赏
  • 举报
回复
cookie的过期时间设置为固定值,每次请求时renew cookie的过期时间,以上。
情天玄月 2013-03-30
  • 打赏
  • 举报
回复
引用 1 楼 JulioHuang 的回复:
将过期时间存为cookie value一部分
问题是貌似cookie的过期时间无法更改。。
黄亮 2013-03-30
  • 打赏
  • 举报
回复
将过期时间存为cookie value一部分

62,074

社区成员

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

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

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

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