ASP.NET Session State: Managing User Data Across Multiple Requests

Understand how to utilize ASP.NET session state for managing user-specific data across multiple requests. This tutorial explains session state management, demonstrates storing and retrieving data using the `Session` object, and highlights its role in maintaining user context throughout a browsing session.



ASP.NET Session State

What is Session State?

In ASP.NET, session state is a way to store and retrieve data associated with a specific user's browsing session. It allows your application to "remember" information about a user across multiple requests from the same browser within a certain timeframe. By default, session state is enabled for all ASP.NET applications.

The session data is stored in a `SessionStateItemCollection` object. You access the current session using the `Session` property of the `Page` object.

Example: Using Session State

This example demonstrates how to create a session and store a user's email address.

Default.aspx (ASPX):

Code

<%@ Page Title="Home Page" Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs"
    Inherits="SessionExample._Default" %>

Provide Following Details:<br />
Email: <asp:TextBox ID="email" runat="server" /><br />
Password: <asp:TextBox ID="password" runat="server" TextMode="Password" /><br />
<asp:Button ID="login" runat="server" Text="Login" OnClick="login_Click" /><br />
<asp:Label ID="Label3" runat="server" /><br />
<asp:Label ID="Label4" runat="server" />

Default.aspx.cs (Code-Behind):

Code

using System.Web.UI;

namespace SessionExample
{
    public partial class _Default : Page
    {
        protected void login_Click(object sender, EventArgs e)
        {
            if (password.Text == "qwe123") // Simple password check (for demonstration only!)
            {
                Session["email"] = email.Text;
            }
            if (Session["email"] != null)
            {
                Label3.Text = "This email is stored in the session.";
                Label4.Text = Session["email"].ToString();
            }
        }
    }
}

This code stores the email in the session if the password matches (a very simple example – don't use this for real-world password validation!). It then displays the stored email from the session.