本帖最后由 inghot 于 2014-05-11 00:03:52 编辑

解决方案 »

  1.   

    在必要的事件处理程序中访问Session。不要在实例化方法中去访问。我想你应该稍微学习一点asp.net的运行机制。asp.net系统会创建了页面对象之后,才把系统的Session集合中的一大堆与当前SessionID相关的单元拷贝到页面的Session集合中。你的代码必须在之后访问Session,而不是之前。
      

  2.   

    另外说句题外话。在asp.net程序中,大量的对页面的扩展,都不适合用“父类”的方式来处理。这就好象是搭积木,你在设计时可能需要“用鼠标轻松地一拖”这样的形式为页面附加上(组合上)特定的扩展功能,这个时候你就无法把他们都堆砌在一个巨大的“父类”中。你可以使用用户控件,或者系统提供的配置方法,等等。轻易不要把这些东西弄到“父类”中。
      

  3.   

        HttpContext contextc = HttpContext.Current;
                    HttpContext.Current.Response.Write(contextc.Session["Userid"]);
      

  4.   

    Admin_Base : System.Web.UI.Page
    public Admin_Base()请注意,你继承地地是谁,webfrom有自己的生存期和调用顺序,你构造直接访问,破坏了顺序,自然有误
    建议在
     protected override void OnInit(EventArgs e)里编写你的代码