解决方案 »

  1.   

    断点看,你启动页的page_load是否执行了多次
    而且,你不应该给它赋值成"未登录",不要赋值.其他页面只要判断它是null就表示未登录了
      

  2.   

    你非要赋值,也应该先判断它是null才赋值成未登录,否则已经赋值成abc,你还执行,当然又改回去了
      

  3.   

    asp.net的 Session 基于 cookie 中的 ASPSessionID 编码。通常在调试时应该首先(使用http 消息调试器)跟踪后两次对服务器发送消息时的 sessionID 值,以及 asp.net 应用程序所得到的 SessionID 值。如果不一致,就不用纠结什么 Session["LoginUser"] 之类的了,应该检查为什么 SessionID 不一致的问题。
      

  4.   

    反之,如果 SessionID 是一致的,由于asp.net是个靠谱的大公司的产品、经过了几千万程序员检验,这时候就基本上可以判断估计自己的程序的一个肤浅的错误——你自己再次执行了 Session["LoginUser"] = "未登录" 语句。