我有一个从.cs类继承的webform(从Page激活)
WebForm1.aspx => BaseWebForm.cs => Page
我正在尝试从BaseWebForm访问当前会话,但在其上下文中,它为null。我通过以下方式调用BaseWebForm:
表单页面
WebForm1 :BaseWebForm
public WebForm1(): Base()
{
}
BaseWebForm.cs类
public BaseWebForm ()
{
//access HttpContext.Current.Session["User_xComics"]
}
在BaseWebForm上下文中,会话为空,但在WebForm1的上下文中,会话确实存在。有什么问题?
答案 0 :(得分:0)
BaseWebForm
类应继承自System.Web.UI.Page
。您应该只使用页面生命周期事件,例如Page_Load
,而不是在构造函数中执行Session
。
用户登录后,您可能应该初始化HttpContext.Current.Session["User_xComics"]
。如果这是使用Windows身份验证,那么最佳位置是全局应用程序类的Session_Start
函数(.asax.cs)