回发时处理会话超时

时间:2011-12-08 06:00:41

标签: c# asp.net session-timeout

我有一个在ASP.net和ASP开发的Web应用程序。 C#。我还使用Telerik ASP.NET AJAX进行Web UI。会话超时在母版页中处理如下:

public partial class Master: System.Web.UI.MasterPage
{
protected void Page_Load(object sender, EventArgs e)
{
    if (Session["UserName"] == null)
        Response.Redirect("~/Login.aspx");
}

如果我在会话超时后尝试加载页面,这可以正常工作。但如果我尝试执行回发,则会抛出NullReferenceException。

在会话超时和回发后有没有办法重定向到登录页面?或者如何处理这种情况?

2 个答案:

答案 0 :(得分:2)

您必须使用global.asax中的session_start事件来处理此场景,因为在会话超时后,如果用户再次导致回发,则Session_Start() 事件被解雇了。

请查看here如何设置逻辑。

答案 1 :(得分:1)

使用if(Session.IsNew)是一种方法。