本帖最后由 somethingma 于 2009-12-30 23:03:37 编辑

解决方案 »

  1.   

    经过几天查找和分析,我对自己问题的解答如下,供有同样困惑的网友参考。
    问题得分情况解答:
    (1)如果设置cookie是非持久性的,使用Context.User.Identity.Name == null和Session["xxxxx"]==null判断等效,即会话过期或者关闭网页,这两者都会变成null。
    (2)如果设置cookie是持久性的,两者效果不同。Session["xxxxx"]在会话过期或者关闭网页后将变成null,而Context.User.Identity.Name 会根据cookie失效时间到期后变成null的。
    结论:到底选择哪个,根据实际需求选择。如果碰到Session容易丢失并且安全要求比较高的话,可以考虑使用StateServer和SQL Server存储session。