ASP.NET Tutorial/Sessions/sessionState

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

Controlling When a Session Times Out

You can specify the Session timeout in the web configuration file or you can set the Session timeout programmatically. 
The following web configuration file changes the Session timeout value to 60 (1 hour).
File: Web.Config
<configuration>
<system.web>
  <sessionState timeout="60" />
</system.web>
</configuration>

You can modify the Session timeout value programmatically with the Timeout property of the Session object. 

Session.Timeout = 60;


If a session ends

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="UsingSessionEnd" EnableSessionState="ReadOnly" %>
<!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 id="Head1" runat="server">
  <title>Using Session State - End</title>
</head>
<body>
  <form id="form1" runat="server">
    <div id="container">
      <h1>Using Session State - End</h1>
           Session value:
            <asp:Label ID="labSession" runat="server" /><br />
            <asp:HyperLink ID="lnkSession" runat="server" NavigateUrl="UsingSessionStart.aspx" Text="Go to session start page" /><br />
     </div>
  </form>
</body>
</html>
File: Default.aspx.cs

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class UsingSessionEnd : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
       if (Session["Name"] == null)
          labSession.Text = "Session has timed out or not been initialized";
       else
       {
          string name = (string)Session["Name"];
          labSession.Text = name;
       }
    }
}


Using Cookieless Session State

The web configuration file enables cookieless sessions by assigning the value AutoDetect to the cookieless attribute.
File: Web.Config
<configuration>
<system.web>
  <sessionState
    cookieless="AutoDetect"
    regenerateExpiredSessionId="true" />
</system.web>
</configuration>