我一直在使用Session.clear(),我在firecookie中注意到会话仍然存在。所以我开始谷歌,发现有4种方法可以删除会话
Session.Remove(strSessionName); Remove an Item from Session State Collection
Session.RemoveAll() Remove all items from session collection
Session.Clear() Remove all items from session collection Note: There is no difference between Clear and RemoveAll. RemoveAll() calls Clear(), internally.
Session.Abandon() Cancels the Current Session
现在清除和删除似乎做同样的事情,但你应该使用哪一个,比如为什么使用remove()而不是放弃清除。
就像你使用session.Abandon一样,它会杀死当前的会话。 clear()删除值。
为什么你只想保持会话没有值?为什么不完全杀掉它?
答案 0 :(得分:4)
Session.Abandon()在global.asax文件中触发Session_End事件,而Session.Clear()则不触发。
想象一下,您存储用户的会话开始时间和结束时间以用于审计目的的场景 - 您可能希望偶尔清除其会话(例如更新配置文件设置),而不会触发Session_End事件。