Your SlideShare is downloading. ×
2310 b 14
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

2310 b 14

876

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
876
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
65
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Module 14: Managing State
  • 2. Overview
    • State Management
    • Application and Session Variables
    • Cookies and Cookieless Sessions
  • 3. Lesson: State Management
    • What is State Management?
    • Types of State Management
    • Server-Side State Management
    • Client-Side State Management
    • The Global.asax File
  • 4. What is State Management? First Name Last Name Please enter your logon information: John Submit Chen Web Server Login.aspx Login.aspx Web Server Hello John Chen Greetings.aspx Please enter your logon information: John Submit Chen Hello Greetings.aspx I forget who you are!! First Name Last Name Without State Management With State Management
  • 5. Types of State Management
    • Query strings
    • Information appended to the end of a URL
    • Database
    • In some cases, use database support to maintain state on your Web site
    • The ViewState property
    • Retains values between multiple requests for the same page
    • Session state
    • Information is available only to a user of a specific session
    • Cookies
    • Text file stores information to maintain state
    • Application state
    • Information is available to all users of a Web application
    Client-Side State Management Server-Side State Management
  • 6. 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
  • 7. 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
  • 8. 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
  • 9. The Global.asax File ( continued ) ASP.NET Web Server Client ASP.NET HTTP Runtime IIS Application_BeginRequest Application_AuthenticateRequest Application_AuthorizeRequest Application_ResolveRequestCache Application_AquireRequestState Application_PreRequestHandlerExecute Application_EndRequest Application_UpdateRequestCache Application_ReleaseRequestState Application_PostRequestHandlerExecute Page execution Request Response
  • 10. 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
  • 11. Initializing Application and Session Variables
    • Variables are initialized in Global.asax
      • The Application object s hares 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; }
  • 12. 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() strBgColor = Session("BackColor") lblNbVisitor.Text = Application("NumberOfVisitors") Session["BackColor"] = "blue"; Application.Lock(); Application["NumberOfVisitors"] = (int)Application["NumberOfVisitors"] + 1; Application.UnLock(); strBgColor = (string)Session["BackColor"]; lblNbVisitor.Text = Application["NumberOfVisitors"].ToString();
  • 13. 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
  • 14. 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=&quot;10&quot; /> </system.web> </configuration>
  • 15. 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
    SQL Session and Application variables Client Web farm Session and Application variables -Or- State server
  • 16. Saving Application and Session Variables in a Database
    • 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=&quot;SQLServer&quot; sqlConnectionString=&quot;data source= SQLServerName ; Integrated security=true&quot; /> c:> OSQL –S SQLServerName –E <InstallSqlState.sql 1 2
  • 17. 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
  • 18. Using Cookies to Store Session Data
    • Creating a cookie:
    • Cookie contains information about the domain name
    HttpCookie objCookie = new HttpCookie(&quot;myCookie&quot;); DateTime now = DateTime.Now; objCookie.Values.Add(&quot;Time&quot;, now.ToString()); objCookie.Values.Add(&quot;ForeColor&quot;, &quot;White&quot;); objCookie.Values.Add(&quot;BackColor&quot;, &quot;Blue&quot;); Response.Cookies.Add(objCookie); HttpCookie objCookie = new HttpCookie(&quot;myCookie&quot;); DateTime now = DateTime.Now; objCookie.Values.Add(&quot;Time&quot;, now.ToString()); objCookie.Values.Add(&quot;ForeColor&quot;, &quot;White&quot;); objCookie.Values.Add(&quot;BackColor&quot;, &quot;Blue&quot;); 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
  • 19. 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
  • 20. Retrieving Information from a Cookie
    • Read the cookie
    • Retrieve values from the cookie
    lblTime.Text = objCookie.Values(&quot;Time&quot;) lblTime.ForeColor = System.Drawing.Color.FromName _ (objCookie.Values(&quot;ForeColor&quot;)) lblTime.BackColor = System.Drawing.Color.FromName _ (objCookie.Values(&quot;BackColor&quot;)) Dim objCookie As HttpCookie = Request.Cookies(&quot;myCookie&quot;) HttpCookie objCookie = Request.Cookies[&quot;myCookie&quot;]; lblTime.Text = objCookie.Values[&quot;Time&quot;]; lblTime.ForeColor = System.Drawing.Color.FromName (objCookie.Values[&quot;ForeColor&quot;]); lblTime.BackColor = System.Drawing.Color.FromName (objCookie.Values[&quot;BackColor&quot;]);
  • 21. 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
  • 22. Setting Up Cookieless Sessions
    • Session state is configured in the <SessionState> section of Web.config
    • Set cookieless = true
    <sessionState cookieless=&quot;true&quot; />
  • 23. Review
    • State Management
    • Application and Session Variables
    • Cookies and Cookieless Sessions
  • 24. Lab 15: Storing Application and Session Data Medical Medical.aspx Benefits Home Page Default.aspx Life Insurance Life.aspx Retirement Retirement.aspx Dental Dental.aspx Dentists Doctors Doctors.aspx Doctors Logon Page Login.aspx Registration Register.aspx Coho Winery Prospectus Prospectus.aspx XML Web Service dentalService1.asmx Page Header Header.ascx ASPState tempdb Lab Web Application User Control namedate.ascx Menu Component Class1.vb or Class1.cs XML Files Web. config

×