读书人

FormsAuthenticationTicket的有关问题

发布时间: 2012-01-15 22:57:49 作者: rapoo

FormsAuthenticationTicket的问题
Web.Config 中配置
<forms loginUrl= "Login.aspx " defaultUrl= "Default.aspx " path= "/ " protection= "All " timeout= "20 " cookieless= "UseDeviceProfile " slidingExpiration= "true "> </forms>

Ticket生成代码
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, userName, DateTime.Now, DateTime.Now.AddHours(1), false, roleStr);

在Web.Config中设置的Cookie过期时间是20分钟(timeout= "20 "),而Ticket生成时设置Ticket的过期时间是1个小时(DateTime.Now.AddHours(1)),这时好像登录验证失效是以Ticket设置的时间为期准。为什么Cookie的失效时间已经到了但是cookie没有消失???为什么会是以Ticket的时间为基准???
Cookie的Expiration与Ticket的Expiration有什么关联??



[解决办法]
我猜是你的Ticket.Expiration覆盖了Cookie的Expiration
[解决办法]
你在Web.Config设置的代码看看,会不会你设置的是SESSION啊!!!或者你在Ticket中的设置和Web.Config中的设置完全一样就可以了嘛!!!
[解决办法]
含有这个ticket的cookie是怎么输出到客户端的?
[解决办法]
Web.Config中设置的Cookie过期时间并不是所有cookie的过期时间

你用自己的cookie当然就不会再受asp.net默认身份验证cookie的影响了

默认的身份验证cookie名称就是web.config里设置的
[解决办法]
但是cookie没有消失 是什么意思

你看着cookie目录 发现它没有消失 ?
[解决办法]
不设置的话

应该是跟随当前会话的浏览器进程而存在

进程关闭则cookie失效

读书人网 >asp.net

热点推荐