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

C# 检查条件和重定向的最佳位置,c#,asp.net,page-lifecycle,C#,Asp.net,Page Lifecycle,在页面生命周期中,检查条件是否为真并在条件为真时从加载的页面重定向的最佳部分是什么。在这种情况下,我检查用户是否在注册后设置了他/她的帐户设置。如果他们没有那么我重定向。但是,我希望在问题中的页面开始实际加载之前执行检查和重定向 有什么想法吗?正确的逻辑应该放在页面加载方法中 protected void Page_Load(object sender, EventArgs e) { //Check for condition here & redirect i

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


有什么想法吗?

正确的逻辑应该放在页面加载方法中

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

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

我想你每一页都得检查一下。在本例中,我将使用Global.asax中的事件,例如

    protected void Application_BeginRequest(object sender, EventArgs e)
    {
    }
或者(如果与身份验证有关)

如果您只需要在登录后检查它,那么可以为OnLoggedIn实现一个事件处理程序


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

对于站点的每个页面,全局如何?slfan是正确的。如果您想在每个页面上执行此操作,可以在global.asax中向这些方法添加检查。其他选项是将它们放在母版页或基页类中(如果在每页上都使用它们)。变量条件存储在哪里?在任何无关的页面处理之前,您可能能够“更快地失败”,这取决于-例如on。要在全局级别执行此操作,请查看类和(或类似)事件:不过,您需要筛选特定的请求类型(页面)。然后您可能不需要等到页面完全加载后再执行重定向。
    protected void Application_AuthenticateRequest(object sender, EventArgs e)
    {
    }