module 14 managing state n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Module 14: Managing State PowerPoint Presentation
Download Presentation
Module 14: Managing State

Loading in 2 Seconds...

play fullscreen
1 / 24

Module 14: Managing State - PowerPoint PPT Presentation


  • 85 Views
  • Uploaded on

Module 14: Managing State. Overview. State Management Application and Session Variables Cookies and Cookieless Sessions. Lesson: State Management. What is State Management? Types of State Management Server-Side State Management Client-Side State Management The Global.asax File.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Module 14: Managing State' - walter


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
overview
Overview
  • State Management
  • Application and Session Variables
  • Cookies and Cookieless Sessions
lesson state management
Lesson: State Management
  • What is State Management?
  • Types of State Management
  • Server-Side State Management
  • Client-Side State Management
  • The Global.asax File
what is state management
What is State Management?

Without State Management

With State Management

Login.aspx

Login.aspx

Please enter your logon information:

Please enter your logon information:

First Name

First Name

John

John

Last Name

Last Name

Chen

Chen

Web Server

Submit

Submit

Web Server

Greetings.aspx

Greetings.aspx

Hello

Hello John Chen

I forget who you are!!

server side state management
Server-Side State Management
  • Application state is a global storage mechanism accessible from all pages in the Web application
  • Session state is limited to the current browser session
    • Values are preserved through the use of application and session variables
    • Scalability
  • ASP.NET session is identified by the SessionID string

Web Server

Client Computer

Application and Session variables

SessionID

client side state management
Client-Side State Management
  • Uses cookies to maintain state
    • Persistent cookies
    • Temporary/ Non-persistent cookies
  • Less reliable than server-side state management options
    • User can delete cookies
  • Less secure than server-side state management options
  • Limited amount of information
    • Client-side restrictions on file sizes

Web Server

Client Computer

Cookies

the global asax file
The Global.asax File
  • Only one Global.asax file per Web application
  • Stored in the virtual root of the Web application
  • Used to handle application and session events
  • The Global.asax file is optional
the global asax file continued
The Global.asax File (continued)

Client

Request

Response

ASP.NET Web Server

IIS

ASP.NET HTTP Runtime

Application_BeginRequest

Application_AuthenticateRequest

Application_AuthorizeRequest

Application_EndRequest

Application_ResolveRequestCache

Application_UpdateRequestCache

Application_AquireRequestState

Application_ReleaseRequestState

Application_PreRequestHandlerExecute

Application_PostRequestHandlerExecute

Page execution

lesson application and session variables
Lesson: Application and Session Variables
  • Initializing Application and Session Variables
  • Using Application and Session Variables
  • Demonstration: Using Session Variables
  • Application and Session Variable Duration
  • Scalable Storage of Application and Session Variables
  • Saving Application and Session Variables in a Database
initializing application and session variables
Initializing Application and Session Variables
  • Variables are initialized in Global.asax
    • The Application object shares information among all users of a Web application
    • The Session object stores information for a particular user session

Sub Application_Start(s As Object,e As EventArgs)

Application("NumberofVisitors") = 0

End Sub

protected void Application_Start(Object sender,EventArgs e)

{

Application["NumberofVisitors"] = 0;

}

using application and session variables
Using Application and Session Variables
  • Set session and application variables
  • Read session and application variables

Session("BackColor") = "blue"

Application.Lock()

Application("NumberOfVisitors") += 1

Application.UnLock()

Session["BackColor"] = "blue";

Application.Lock();

Application["NumberOfVisitors"] =

(int)Application["NumberOfVisitors"] + 1;

Application.UnLock();

strBgColor = Session("BackColor")

lblNbVisitor.Text = Application("NumberOfVisitors")

strBgColor = (string)Session["BackColor"];

lblNbVisitor.Text = Application["NumberOfVisitors"].ToString();

demonstration using session variables
Demonstration: Using Session Variables
  • Initialize a session variable (a number) in global.asax
  • Access the session variable from one page
  • Access the session variable from another page and modify it
  • Re-access the session variable from the first page
application and session variable duration
Application and Session Variable Duration
  • Session variables have a set duration after last access
    • Default is 20 minutes
  • Session duration can be changed in Web.config:
  • Application variables persist until the Application_End event is fired

<configuration>

<system.web>

<sessionState timeout="10" />

</system.web>

</configuration>

scalable storage of application and session variables
Scalable Storage of Application and Session Variables
  • By default, the session state is managed in process
  • Disadvantage of in process storage:
    • Not Scalable
  • ASP.NET provides out of process storage of session state
    • State can be stored in a SQL Server database or a state server
  • Advantages of out of process storage:
    • Scalable

State server

Web farm

Session and Application variables

-Or-

SQL

Client

Session and Application variables

saving application and session variables in a database
Saving Application and Session Variables in a Database

1

  • Configure the session state in Web.config
    • Mode is set to sqlserver or stateserver
  • Then, configure the SQL server
    • OSQL creates several stored procedures and temporary databases for storing the variables

<sessionState mode="SQLServer" sqlConnectionString="data source=SQLServerName; Integrated security=true" />

2

c:\> OSQL –S SQLServerName –E <InstallSqlState.sql

lesson cookies and cookieless sessions
Lesson: Cookies and Cookieless Sessions
  • Using Cookies to Store Session Data
  • Instructor-Led Practice: Using Variables and Cookies
  • Retrieving Information from a Cookie
  • Using Cookieless Sessions
  • Setting Up Cookieless Sessions
using cookies to store session data
Using Cookies to Store Session Data
  • Creating a cookie:
  • Cookie contains information about the domain name

HttpCookie objCookie = new HttpCookie("myCookie");

DateTime now = DateTime.Now;

objCookie.Values.Add("Time", now.ToString());

objCookie.Values.Add("ForeColor", "White");

objCookie.Values.Add("BackColor", "Blue");

Response.Cookies.Add(objCookie);

HttpCookie objCookie = new HttpCookie("myCookie");

DateTime now = DateTime.Now;

objCookie.Values.Add("Time", now.ToString());

objCookie.Values.Add("ForeColor", "White");

objCookie.Values.Add("BackColor", "Blue");

objCookie.Expires = now.AddHours(1);

Response.Cookies.Add(objCookie);

To create a persistent cookie, specify the expiration time

Set-Cookie: Username=John+Chen; path=/;

domain=microsoft.com;

Expires=Tuesday, 01-Feb-05 00.00.01 GMT

instructor led practice using variables and cookies
Instructor-Led Practice: Using Variables and Cookies
  • Students will:
    • See how the application and session variables, and persistent cookies, are used to store user information
  • Time: 15 Minutes
retrieving information from a cookie
Retrieving Information from a Cookie
  • Read the cookie
  • Retrieve values from the cookie

Dim objCookie As HttpCookie = Request.Cookies("myCookie")

HttpCookie objCookie = Request.Cookies["myCookie"];

lblTime.Text = objCookie.Values("Time")

lblTime.ForeColor = System.Drawing.Color.FromName _

(objCookie.Values("ForeColor"))

lblTime.BackColor = System.Drawing.Color.FromName _

(objCookie.Values("BackColor"))

lblTime.Text = objCookie.Values["Time"];

lblTime.ForeColor = System.Drawing.Color.FromName

(objCookie.Values["ForeColor"]);

lblTime.BackColor = System.Drawing.Color.FromName

(objCookie.Values["BackColor"]);

using cookieless sessions
Using Cookieless Sessions
  • Each active session is identified and tracked using session IDs
  • Session IDs are communicated across client-server requests using an HTTP cookie or included in the URL
  • Cookieless sessions
    • Session ID information is encoded into URLs
    • Cannot use absolute URLs
    • Most browsers limit the URL size to 255 characters, which limits use of cookieless Session IDs

http://server/(h44a1e55c0breu552yrecobl)/page.aspx

setting up cookieless sessions
Setting Up Cookieless Sessions
  • Session state is configured in the <SessionState> section of Web.config
  • Set cookieless = true

<sessionState cookieless="true" />

review
Review
  • State Management
  • Application and Session Variables
  • Cookies and Cookieless Sessions
lab 15 storing application and session data
Lab 15: Storing Application and Session Data

Logon Page

Login.aspx

BenefitsHome PageDefault.aspx

CohoWinery

Page HeaderHeader.ascx

ASPState

Menu ComponentClass1.vb or Class1.cs

Registration

Register.aspx

Web.config

tempdb

Life InsuranceLife.aspx

RetirementRetirement.aspx

MedicalMedical.aspx

DentalDental.aspx

XML Web ServicedentalService1.asmx

ProspectusProspectus.aspx

DoctorsDoctors.aspx

User Controlnamedate.ascx

Lab Web Application

XML Files

Doctors

Dentists