检查条件和重定向的最佳位置

时间:2011-11-21 20:42:32

标签: c# asp.net page-lifecycle

检查条件是否为真的页面生命周期的最佳部分是什么,如果是,则重定向远离正在加载的页面。在这种情况下,我正在检查用户是否在注册后设置了他/她的帐户设置。如果他们没有,那么我重定向。但是我想在问题开始实际加载之前执行检查和重定向。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

放置该逻辑的正确位置将在Page_Load方法

 protected void Page_Load(object sender, EventArgs e)
    {
        //Check for condition here & redirect if needed

        if (!IsPostBack)
        {
          //Load data & bind stuff here
        }
     }

答案 1 :(得分:1)

我想你必须为每一页都检查一下。在这种情况下,我会在Global.asax中使用一个事件,例如

    protected void Application_BeginRequest(object sender, EventArgs e)
    {
    }

或(如果与身份验证有关)

    protected void Application_AuthenticateRequest(object sender, EventArgs e)
    {
    }

如果您只需在登录后进行检查,则可以为OnLoggedIn实现事件处理程序。

第三种可能性是为所有asp.net表单实现一个抽象的公共基页并实现OnPageLoad事件。这比复制每个页面中的代码要好。