不可靠的SESSION
左直拳
SESSION不可靠。
按道理讲,使用Session.Abandon,当前会话就应该死翘翘,彻底消失。使用Session.Clear或Session.RemoveAll,内容也应该被铲除。但事实并非如此,在使用过程中,有时会遇到本应消失(用Abandon强行终止)或被替换了的SESSION借尸还魂,僵而不死的情况,时不时的跳出来,吓人一跳。但又不是次次如此,有时行,有时不行,直到生命期限过了才算罢休。
这些僵尸从哪来?真不知道,试了很长时间都找不到原因。
后来用了个办法改善。
存储信息的时候,设个类似ID之类的信息,分别存放在两个地方,一个是SESSION,一个是COOKIE。当读取这个会话的时候,则从会话和COOKIE中拿出ID比对,如果相符则会话合法,否则认为这个是僵尸。
之后就没有看到再有僵尸出现。