如何在会话过期后重定向到asp.net中的上一页

本文关键字:net asp 一页 重定向 会话 过期 | 更新日期: 2023-09-27 18:09:31

目前我正在做一个项目,在这个项目中,当用户输入他的电子邮件和密码时,会创建一个登录会话但一段时间后,当会话到期,然后登录页面出现,当我输入详细信息,然后我被重定向到主页在会话过期之前是否有办法返回到上一页?

如何在会话过期后重定向到asp.net中的上一页

抱歉打断你,但是没有办法在Session_End重定向,因为那里没有客户端!当会话结束时,您将被重定向到destinationurl !

你可以重定向到登录!打开你的网页。并将会话超时设置为1分钟,如下所示:

<system.web>   
  <sessionState mode="InProc" timeout="1"/>   
</system.web>  

现在打开全局。asax文件并为Session_Start事件编写以下代码:

 void Session_Start(object sender, EventArgs e)    
 {   
   // Code that runs when a new session is started   
   if (Session["LoginUserName"] != null)   
   {   
   //Redirect to Welcome Page if Session is not null   
      Response.Redirect("Welcome.aspx");   
   }   
 else   
  {   
   //Redirect to Login Page if Session is null & Expires    
      Response.Redirect("Login.aspx");   
  }  

在上面的Global。如果会话为空,则页面被重定向到Login.aspx。如果没有,则重定向到Welcome.aspx。我在环球报做过这个逻辑。asax文件,因为全局。全局触发Asax文件事件。

现在是整个全局。一个ax文件将如下所示:

  <%@ Application Language="C#" %>   
  <script RunAt="server">   
  void Application_Start(object sender, EventArgs e)   
  {   
    // Code that runs on application startup   
 }   
void Application_End(object sender, EventArgs e)   
{   
    //  Code that runs on application shutdown   
}   
void Application_Error(object sender, EventArgs e)   
{   
    // Code that runs when an unhandled error occurs   
}   
   void Session_Start(object sender, EventArgs e){
    // Code that runs when a new session is started   
   if (Session["LoginUserName"] != null)   
   {   
        //Redirect to Welcome Page if Session is not null   
        Response.Redirect("Welcome.aspx");   
    }   
    else   
  {   
        //Redirect to Login Page if Session is null & Expires    
     Response.Redirect("Login.aspx");   
    }   

}   
void Session_End(object sender, EventArgs e)   
{   
  // Code that runs when a session ends.    
 // Note: The Session_End event is raised only when the sessionstate mode   
   // is set to InProc in the Web.config file. If session mode is set to StateServer    
    // or SQLServer, the event is not raised.   
    }   
    </script>  

现在打开Login.aspx.cs页面,在Login Button中写入以下代码:

 protected void Button1_Click(object sender, EventArgs e)   
 {   
     Session["LoginUserName"] = Convert.ToString(TextBox1.Text);   
     Response.Redirect("Welcome.aspx");   
  }  

在上面的代码中,首先我们将登录用户名存储在会话中,以便我们可以在下一页获得登录用户名,然后我们将页面重定向到欢迎页面。aspx页面。

现在在Welcome.aspx.cs页面中编写以下代码:

using System;   
using System.Collections.Generic;   
using System.Linq;   
using System.Web;   
using System.Web.UI;   
using System.Web.UI.WebControls;   
public partial class Default2 : System.Web.UI.Page   
{   
    protected void Page_Load(object sender, EventArgs e)   
{   
 Label1.Text="WelCome    " +Convert.ToString(Session["LoginUserName"]);   
}   
protected void Button1_Click(object sender, EventArgs e)   
{   
    Response.Redirect("AddUserDetails.aspx");   
}   
}  

在上面的代码中,在用户登录到应用程序之后,它被重定向到Welcome。因此,我们从Session页面加载当前用户登录名并将其分配给标签。

我已经添加了另一个页面是AddUserDetails。Aspx并从上面的代码调用它,以确定会话是否已过期。如果过期,它将重定向到AddUserDetails。aspx页面,否则将转到Login。aspx页面。

现在我们的应用程序已经准备好进行测试,那么让我们运行应用程序。将显示以下登录页面: