检查用户是否已经登录- Page_PreInit vs Page_Load

本文关键字:Page PreInit vs Load 登录 用户 是否 检查 | 更新日期: 2023-09-27 18:09:26

我有一个登录页面和一个内容页面(即主页)。

如果用户尚未登录,则会被重定向到登录页面。在登录页面,用户成功登录后,凭据将存储在一个Session变量中。

我的问题是,如果我在PreInitPage_Load期间检查登录状态会有什么不同?例如

的区别是什么?
protected void Page_PreInit(object sender, EventArgs e)
{
    //If the user is not logged in, redirect the user to login page
    if (Session["isLogin"] == null || Session["isLogin"] == 0)
    {
        Response.Redirect("~/Login");
    }
}

:

protected void Page_Load(object sender, EventArgs e)
{
    //If the user is not logged in, redirect the user to login page
    if (Session["isLogin"] == null || Session["isLogin"] == 0)
    {
        Response.Redirect("~/Login");
    }
}

以下哪一种实现方式更值得推荐?利与弊?

检查用户是否已经登录- Page_PreInit vs Page_Load

对于您的目的,最好使用Page_PreInit事件,因为如果调用重定向,您将避免加载不必要的控件和视图状态。

你可以在这里找到一个很好的描述页面事件,页面中加载的内容以及每个阶段可以控制的内容