每个页面加载前的会话检查?

时间:2010-06-10 18:51:32

标签: c# asp.net session

有没有办法可以调用函数,或者创建一个在每个页面加载之前运行的文件。我希望能够在显示页面之前检查他们是否有有效的会话。

4 个答案:

答案 0 :(得分:3)

您应该考虑实现一个在呈现页面时可以调用的事件处理程序。

有关详细信息,请参阅MSDN上的page life cycle page

如果您只是想不显示任何内容,那么PreInit()事件可能就是您想要的事件。

如果您想显示不同的内容,那么PreLoad()事件可能更合适。

答案 1 :(得分:2)

正如克里斯所说,你需要回应页面生命周期中发生的一个事件。如果您只想在一个地方办理登机手续,可以从Page class派生一个班级,并使所有页面都实现该班级。

答案 2 :(得分:2)

只需检查页面的Page_Preinit事件上的session是否为null:

        private void Page_PreInit(object sender, System.EventArgs e) {
          if ((Session == null)) {
            // Do something here
          }
        }

如果您需要在很多页面上执行此操作,只需创建一个基页,将代码放在那里,让您的页面继承该基页。

你应该让自己熟悉ChrisF建议的页面生命周期。

-D

答案 3 :(得分:0)

如果您正在讨论在页面加载之前在多个不同页面上运行公共代码,则听起来您正在寻找MasterPages,在主页中实现会话检查。