我正在開發一個網站,我想在會話超時後重定向到主頁。 任何人都可以請幫我解決這個問題。如何在會話超時後重定向到主頁
2
A
回答
1
0
這是例如檢測會話超時,並重定向到登錄頁面在ASP.NET中,當用戶閒置指定爲web.config文件時發生會話超時。
爲此,我在web.config中將超時值設置爲1分鐘。
第1種方法
在web.config文件中,設置將sessionState模式INPROC和認證方式爲形式
<system.web>
<compilation debug="true"/>
<authentication mode="Forms"/>
<sessionState mode="InProc" cookieless="false" timeout="1"></sessionState>
</system.web>
我在這個例子中創建了三個頁面,一個是登錄頁面,當會話到期時,我重定向到這個頁面,一個是導航頁面,我將檢查會話是否有效,如果它是有效的,只有用戶會看到這個頁面,其他明智的他會被重定向到登錄頁面。
在您的應用程序或網站的根目錄中添加Global.asax
類文件。 只有在應用程序中存在Global.asax
時,此方法纔有效。
在我們想要檢查會話超時的頁面的Page_Init事件中,寫下面提到的代碼。
我們也可以將這段代碼放在一個類中,並繼承此類的所有應用程序頁面,充當所有頁面的基類,以檢查會話超時。
C#代碼
protected void Page_Init(object sender, EventArgs e)
{
if (Context.Session != null)
{
if (Session.IsNewSession)
{
HttpCookie newSessionIdCookie = Request.Cookies["ASP.NET_SessionId"];
if (newSessionIdCookie != null)
{
string newSessionIdCookieValue = newSessionIdCookie.Value;
if (newSessionIdCookieValue != string.Empty)
{
// This means Session was timed Out and New Session was started
Response.Redirect("Login.aspx");
}
}
}
}
}
第2種方法。
代碼的Default.aspx
<%@ Page Language="C#" AutoEventWireup="true"
CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button ID="btnSessionStart"
runat="server"
OnClick="btnSessionStart_Click"
Text="Start Session" /><br />
<br />
<br />
<asp:Button ID="btnCheck"
runat="server"
OnClick="btnCheck_Click"
Text="Check Session ID" />
<br />
<asp:TextBox ID="txtSession"
runat="server"
Width="266px">
</asp:TextBox><br />
<br />
<asp:Button ID="btnGO"
runat="server"
OnClick="btnGO_Click"
Text="Go to Other Page" />
<br />
<br />
</div>
</form>
</body>
</html>
背後這個頁面的代碼是這樣
protected void btnSessionStart_Click(object sender, EventArgs e)
{
Guid Session_id = Guid.NewGuid();
Session["SessionID"]
= Session_id.ToString();
}
protected void btnCheck_Click(object sender, EventArgs e)
{
if (Session["SessionID"] != null)
txtSession.Text =
Session["SessionID"].ToString();
else
txtSession.Text =
"Session has expired";
}
protected void btnGO_Click(object sender, EventArgs e)
{
Response.Redirect("Default2.aspx");
}
在這裏我們要檢查的會話超時與否,我們頁需要在頁面的Page_Init事件中檢查它,如果會話不爲空,則用戶將能夠訪問該頁面,否則他將被重定向到登錄頁面。
在這個頁面中,我只是把一個按鈕來訪問主頁
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button ID="btnHome"
runat="server" OnClick="btnHome_Click"
Text="Home" />
</div>
</form>
</body>
</html>
背後守則此頁
protected void Page_Init(object sender, EventArgs e)
{
CheckSession();
}
protected void btnHome_Click(object sender, EventArgs e)
{
Response.Redirect("Default.aspx");
}
private void CheckSession()
{
if (Session["SessionID"] == null)
{
Response.Redirect("Login.aspx");
}
}
如果我們需要檢查這一切的應用程序頁面比我們可以創建一個BaseClass並寫入上面提到的CheckSession和Page_Init部分代碼,並通過鍵入BaseClassName代替System.Web.UI來驅動此類中的所有頁面。頁面,它會檢查所有頁面的會話超時每頁加載
相關問題
- 1. 如何在會話超時後重定向到指定頁面
- 2. ASP.NET Core在會話超時後未重定向到登錄頁
- 3. asp.net會話超時重定向到主頁
- 4. 重定向到登錄頁面後會話超時
- 5. 如何在jsp會話超時後重定向到登錄頁面?
- 6. 會話超時重定向到登錄頁面在Silverlight
- 7. 會話超時後,重定向到索引頁在.war中不起作用
- 8. 「如何檢測會話超時並重定向到登錄頁面在ASP.NET中」
- 9. 會話超時之後JBoss將用戶重定向到哪裏?
- 10. 自動重定向到會話超時後登錄
- 11. 如何在用戶會話過期時重定向到頁面?
- 12. asp.net:如何在Web用戶沒有會話時重定向到主頁?
- 13. SP會話超時後將用戶重定向到登錄頁面
- 14. JSP在會話過期/超時後自動重定向
- 15. Spring Security&ExtJS - 在會話超時時重定向到登錄頁面
- 16. 如何讓jsp頁面在過期後重定向到主頁?
- 17. 如何在會話過期後重定向jsp頁面?
- 18. 如何在ASP.NET中的會話超時後重定向或關閉瀏覽器?
- 19. 超時後重定向coldfusion頁面
- 20. 如何在成功登錄到gwt中的其他類後重定向,以及如何在會話超時後以gwt設置會話超時及其響應?
- 21. 會話丟失時重定向頁面?
- 22. 在會話過期後重定向到登錄頁面
- 23. 沒有重定向到登錄頁面時,會話超時與ajax調用
- 24. href不會重定向到主頁
- 25. 重定向到event.preventDefault ..之後的主頁?
- 26. HttpSession超時後重定向
- 27. Extjs在網格中更新時,如果會話超時如何重定向到登錄頁面?
- 28. 重定向到超時頁面 - AngularJS /春
- 29. 重定向到彈出會話超時登錄
- 30. 會話在Backbone.js中過期後,如何自動重定向到登錄頁面?