【问题标题】:Stop page life cycle execution after response.redirectresponse.redirect 后停止页面生命周期执行
【发布时间】:2011-07-03 17:46:43
【问题描述】:

我有一个基类,它为应用程序中的所有页面实现一些基本身份验证。

public class BasePage : Page
{

    public void Page_PreLoad(object sender, EventArgs e)
    {
        if (!IsUserValid())
        {
            Response.Redirect("default.aspx");
        }
    }


}

public class AuthenticatedUser : BasePage
{
    public void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            Databind();
        }
    }
}

如果用户无效,如何停止AuthenticatedUser的页面生命周期?

谢谢, 阿什瓦尼

【问题讨论】:

    标签: asp.net page-lifecycle


    【解决方案1】:

    在 Response.Redirect 中你可以设置一个布尔值:

    Response.Redirect("Default.aspx", false);
    

    在该模式下使用方法,调用方法时页面生命周期停止。(false为endResponse boolean)

    【讨论】:

    • 反之,响应默认结束。这将导致它无法停止。从技术上讲,您应该这样做以避免输出窗口中的错误,但这很痛苦,因为您必须在页面的其余部分处理这种情况。
    【解决方案2】:

    Response.Redirect 绝对会停止页面生命周期的执行。如果您不想让它停止,您可以在重定向目标之后添加一个参数值false

    也许我不清楚您在问什么,如果您想在没有重定向的情况下停止,请使用Response.End()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多