.net2.0中cookie有效期和票据有效期的理解(原创,转载请注明出处)

我自己对cookie和票据有效期的理解:cookie时票据的容器,如鱼缸,票据放在cookie中,如鱼。

 1、当前的身份验证信息是否过期,先看存储验证信息的客户端cookie是否过期(鱼缸是否是好的),即cookie的Expires属性值与当前时间的比较。
 
 2、cookie过期(鱼缸破了,鱼也就死了,其他鱼缸不受影响,当然你也可以将鱼放到一个新鱼缸中,照常使用原来的票据),票据就过期,用户就要重新登录
 
 3、cookie没过期(鱼缸没破),再看票据是否过期(鱼是否饿死),即FormsAuthenticationTicket.Expiration属性值与当前时间的比较。
 
 4、票据过期,用户就要重新登录
 
 5、票据没有过期,用户无须再登录,身份验证信息依然有效。
 
所以,我创建自定义身份验证信息的思路如下:

 1、获取用户的用户名、密码以及“remember me”是否选中
 
 2、验证用户名和密码
 
 3、验证通过,开始创建身份验证票据
 
 4、注意票据初始化时要设置Expiration(过期时间)的默认值,以及将“remember me”的值(bool型)赋予isPersistent属性
 
 5、创建存储票据的cookie
 
 6、cookie的name为FormsAuthentication.FormsCookieName,value为FormsAuthentication.Encrypt(上文中创建的票据)
 
 7、确定是否设置cookie的Expires(有效期)。
 
 8、如果票据的isPersistent属性为FALSE(非持久性票据),则不用设置cookie的有效期,Cookie的有效期将限制在浏览器生命周期范围内,即浏览器一关,cookie就到期
 
 9、如果票据的isPersistent属性为TRUE(持久性票据),则设置cookie的有效期为你自己想的一个过期时间,如1年,如果此时不设置cookie的有效期,则等同于上一步


PS:
 1、我觉得“是否是持久性票据”就是是不是把载有票据信息的cookie写到客户端的cookie文件夹中。
 
 2、票据过期,无论web.config里面forms节点设置的timeout是否过期,身份验证信息就过期。
 
 3、票据没过期,web.config里面forms节点设置的timeout过期,身份验证信息不一定过期(原因暂时不明)。

转载于:https://www.cnblogs.com/pry5652/articles/1316945.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值