state management in asp.net
DESCRIPTION
Session , QueryString , Cookies, Hidden Filed , Application , etc.TRANSCRIPT
ASP.NETState management
1Shyam N. Chawda 9374928879
Shyam N. Chawda 9374928879
Welcome my dear students2
Shyam N. Chawda 9374928879
IsPostBack Property
Page class’s property , which you can use to detect whether the page has already been post back to server.
True/False
True – Yes 2nd time
For View Effects
Take Dropdown and Add items in the form load Take Button
3
Shyam N. Chawda 9374928879
What is State management?
HTTP protocol is a stateless protocol.
Web server does not have any idea about the requests from where they coming
On each request web pages are created and destroyed.
4
Shyam N. Chawda 9374928879
What is State management?
A new instance of the Web page class is created each time the page is posted to the server.
All information associated with the page and the controls on the page would be lost with each round trip.
5
Shyam N. Chawda 9374928879
What is State management?
So, how do we make web pages which will remember about the user ?
6
Shyam N. Chawda 9374928879
What is State management?
Client-Based
Server-Based
7
Shyam N. Chawda 9374928879
What is State management?
Client-Based
8
Shyam N. Chawda 93749288799
Client side
Shyam N. Chawda 9374928879
What is State management?
Server-Based
10
Shyam N. Chawda 937492887911
Server side
Application state
DatabaseSession state
Shyam N. Chawda 9374928879
Client Side state management
Query String
For understand it you must aware about Request and Response object
12
Shyam N. Chawda 9374928879
Response Object
You can use this class to inject text into the page, jump to other page etc.
Write
Redirect
13
Shyam N. Chawda 9374928879
Request Object
Provides access to the current page request, including the request headers, cookies, query string, and so on.
IsSecureConnection
Checks to see whether you are communicating via an HTTPS secure protocol or not.
14
Shyam N. Chawda 9374928879
Request Object
Request.Browser.Browser
Request.QueryString()
15
Shyam N. Chawda 9374928879
Query string
Information that is appended to the end of a page URL.
You can use a query string to submit data back to your page or to another page through the URL.
Query strings provide a simple but limited way to maintain state information.
16
Shyam N. Chawda 9374928879
Query string
For example in first page you collect information about your client, name and use this information in your second page.
Take 2 forms Take 1 textbox and one button
Response.Redirect("Page2.aspx?Name=" & TextBox1.TextRequest.QueryString("Name")
17
Shyam N. Chawda 9374928879
Query string
Response.redirect(“Formname?” & qry); Response.redirect(“Formname?name=” & value);
18
Shyam N. Chawda 9374928879
Query string
Advantages
No server resources are required Widespread support Almost all browsers and client devices support using query strings to pass values.
Simple implementation
19
Shyam N. Chawda 9374928879
Query string
Disadvantages
Potential security risks
The information in the query string is directly visible to the user via the browser's user interface.
Limited capacity Some browsers and client devices impose a 2083-character limit on the length of URLs.
20
Shyam N. Chawda 9374928879
More than one Query string
Using & Dim str As String str = "PageRequest.aspx?Name=" & TextBox1.Text & "&" & "Lname=" & TextBox2.Text
21
Shyam N. Chawda 9374928879
View State
View State is used to remember controls state when page is posted back to server.
You can store page-specific information
22
Shyam N. Chawda 9374928879
View State
The view state is implemented with a hidden form field called _VIEWSTATE, which is automatically created in every Web page.
When page is created on web sever this hidden control is populate with state of the controls and when page is posted back to server this information is retrieved and assigned to controls.
23
Shyam N. Chawda 9374928879
View State24
Shyam N. Chawda 9374928879
View State
Go View Source
Each control on a Web Forms page has a ViewState property.
Take example of DropdownList
Set Property EnableViewState=True
Take also one button
25
Shyam N. Chawda 9374928879
View State
<%@ Page Language="VB" EnableViewState="false" AutoEventWireup="false" CodeFile="frmViewState.aspx.vb" Inherits="frmViewState" %>
By default true.
So, even if it’s all the controls has set the property Enableviewstate=True but they are not working.
26
Shyam N. Chawda 9374928879
View State
Take 2 Buttons and 1 TextBoxTake one variable before all the coding
Assign that variable in one button click and display in the textbox
Click and 2nd button and write the same logic.
27
Shyam N. Chawda 9374928879
View State
no = 5
ViewState("No") = no
TextBox1.Text = ViewState ("No")
28
Shyam N. Chawda 937492887929
So,Moral of the story about ViewState
EnableViewState property for each control
EnableviewState attribute of the @Page (Page directive)
View source _ViewState
Store value using ViewState(Key)
Shyam N. Chawda 9374928879
View State
Advantages
No server resources are required
Simple implementation View state does not require any custom programming to use. It is on by default to maintain state data on controls.
30
Shyam N. Chawda 9374928879
View State
Enhanced security features
The values in view state are hashed, compressed, and encoded for Unicode implementations, which provides more security than using hidden fields.
31
Shyam N. Chawda 9374928879
View State
Disadvantages
Performance considerations
Storing large values can cause the page to slow down when users display it and when they post it.
This is especially relevant for mobile devices, where bandwidth is often a limitation.
32
Shyam N. Chawda 9374928879
View State
Device limitations
Mobile devices might not have the memory capacity to store a large amount of view-state data.
33
Shyam N. Chawda 9374928879
Hidden Fields
You can store page-specific information.
This control is not visible when the application is viewed in the browser.
Storage area for page specific.
You must submit your pages to the server using the HTTP POST method
34
Shyam N. Chawda 937492887935
Shyam N. Chawda 9374928879
Hidden Fields
Does not render in a Web browser.
However, you can set the properties of the hidden field.
A hidden field stores a single variable in its value property and must be explicitly added to the page.
36
Hidden Fields
Advantages
No server resources are required
Widespread support
Almost all browsers and client devices support forms with hidden fields.
37
Shyam N. Chawda 9374928879
Hidden Fields
Simple implementation
Hidden fields are standard HTML controls that require no complex programming logic.
38
Shyam N. Chawda 9374928879
Hidden Fields
Disadvantages
Potential security risks
The information in the hidden field can be seen if the page output source is viewed directly, creating a potential security issue.
Encrypt and decrypt the contents of a hidden field, but doing so requires extra coding and overhead.
39
Shyam N. Chawda 9374928879
Hidden Fields
Performance considerations
Because hidden fields are stored in the page itself, storing large values can cause the page to slow
Storage limitations
If the amount of data in a hidden field becomes very large, some proxies and firewalls will prevent access to the page that contains them.
40
Shyam N. Chawda 9374928879
Cookies
A Cookie is a small text file that the browser creates and stores on the hard drive of your machine.
Cookie is just one or more pieces of information stored as text strings.
41
Shyam N. Chawda 9374928879
Cookies
Cookies are useful for storing small amounts of frequently changed information on the client.
The cookie contains information the Web application can read whenever the user visits the site.
Cookies are associated with a Web site, not with a specific page, so the browser and server will exchange cookie information.
42
Shyam N. Chawda 9374928879
Cookies
Good example
1. A site conducting a poll might use a cookie simply as a Boolean value to indicate whether a user's browser has already participated in voting so that the user cannot vote twice.
2. Ebay assigns you an ID
43
Shyam N. Chawda 9374928879
Cookies
Good example
1. A site conducting a poll might use a cookie simply as a Boolean value to indicate whether a user's browser has already participated in voting so that the user cannot vote twice.
2. Ebay assigns you an ID
44
Shyam N. Chawda 9374928879
Cookies
Cookies can either be temporary or persistent.
When creating a cookie, you specify a Name and Value.
Each cookie must have a unique name.
You can also set a cookie's date and time expiration.
45
Shyam N. Chawda 9374928879
Cookies
If you do not set the cookie's expiration, the cookie is created but it is not stored on the user's hard disk.
46
Shyam N. Chawda 9374928879
Sets - Cookies
Dim aCookie As New HttpCookie("lastVisit") aCookie.Values("Name") = txtName.Text aCookie.Values("Dt") = DateTime.Now.ToString aCookie.Expires = DateTime.Now.AddDays(1) Response.Cookies.Add(aCookie)
47
Shyam N. Chawda 9374928879
Gets - Cookies
If Not Request.Cookies("lastVisit") Is Nothing Then txtNameR.Text =
Request.Cookies("lastVisit").Values("Name").ToStringtxtDateR.Text =
Request.Cookies("lastVisit").Values("Dt").ToStringEnd if
48
Shyam N. Chawda 9374928879
Cookies
Advantages
No server resources are required
Simplicity
The cookie is a lightweight, text-based structure.
49
Shyam N. Chawda 9374928879
Cookies
Advantages
Data persistence
Although the durability of the cookie on a client computer is subject to cookie expiration processes on the client and user intervention, cookies are generally the most durable form of data persistence on the client.
50
Shyam N. Chawda 9374928879
Cookies
Disadvantages
Size limitations
Most browsers place a 4096-byte limit on the size of a cookie, although support for 8192-byte
51
Shyam N. Chawda 9374928879
Cookies
User-configured refusal
Some users disable their browser or client device's ability to receive cookies, thereby limiting this functionality.
52
Shyam N. Chawda 9374928879
Cookies
Potential security risks
Users can manipulate cookies on their computer, which can potentially cause a security risk or cause the application that is dependent on the cookie to fail.
53
Shyam N. Chawda 9374928879
What is State Management?
Server-Based
Application stateSession stateDatabase
54
Shyam N. Chawda 9374928879
Shyam N. Chawda 9374928879
Application State
Storing application wide-specific information such as objects and variables.
All information stored in the application state is shared among all the pages of the Web application by using the HttpApplicationState class.
55
Shyam N. Chawda 9374928879
Application State
The ideal data to insert into application state variables is data that is shared by multiple sessions and does not change often.
56
Shyam N. Chawda 9374928879
Application State
Goto Global.asax
Find Counter : Session_Start
Application(“Cnt”)= Application(“Cnt”)= +1
57
Shyam N. Chawda 9374928879
Application State
Application("Message") = "Welcome to the LJ” Application("Cnt") = 0 Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs) Application("Cnt") = Application("Cnt") + 1
58
Shyam N. Chawda 9374928879
Application State
Advantages
Simple implementation Application state is easy to use
59
Shyam N. Chawda 9374928879
Application State
Application scope
Because application state is accessible to all pages in an application, storing information in application state can mean keeping only a single copy of the information
60
Shyam N. Chawda 9374928879
Application State
Disadvantages
Limited durability of data
Because global data that is stored in application state is volatile, it will be lost if the Web server process containing it is destroyed, such as from a server crash, upgrade, or shutdown.
61
Shyam N. Chawda 9374928879
Application State
Resource requirements
Application state requires server memory, which can affect the performance of the server as well as the scalability of the application.
62
Shyam N. Chawda 9374928879
Session State
Use when you are storing short-lived information that is specific to an individual session and security is an issue.
Do not store large quantities of information in session state.
63
Shyam N. Chawda 9374928879
Session State
Session("FirstName") = FirstNameTextBox.Text Session("LastName") = LastNameTextBox.Text
Each active ASP.NET session is identified and tracked using a 120-bit.$
SessionID values are generated using an algorithm
64
Shyam N. Chawda 9374928879
Session State
The scope of session state is limited to the current browser session.
If different users are accessing a Web application, each will have a different session state.
Create Login Form
65
Shyam N. Chawda 9374928879
Session State
The scope of session state is limited to the current browser session.
If different users are accessing a Web application, each will have a different session state.
Create Login Form
66
Shyam N. Chawda 9374928879
Session State
Advantages
Simple implementation
Data persistence
Data placed in session-state variables can be preserved through Internet Information Services (IIS) restarts and worker-process restarts without losing session data because the data is stored in another process space.
67
Shyam N. Chawda 9374928879
Session State
Cookieless support
Session state works with browsers that do not support HTTP cookies, although session state is most commonly used with cookies to provide user identification facilities to a Web application.
68
Shyam N. Chawda 9374928879
Session State
Cookieless support
Session state works with browsers that do not support HTTP cookies, although session state is most commonly used with cookies to provide user identification facilities to a Web application.
69
Shyam N. Chawda 9374928879
Session State
Disadvantage
Performance considerations
Session-state variables stay in memory until they are either removed or replaced.
70
Shyam N. Chawda 9374928879
Database
Database enables you to store large amount of information pertaining to state in your Web application.
Sometimes users continually query the database by using the unique ID, you can save it in the database for use across multiple request for the pages in your site.
71
Shyam N. Chawda 9374928879
Database
Advantages
Security
Access to databases requires rigorous authentication and authorization.
72
Shyam N. Chawda 9374928879
Database
Storage capacity
You can store as much information as you like in a database.
Data persistence
Database information can be stored as long as you like, and it is not subject to the availability of the Web server.
73
Shyam N. Chawda 9374928879
Database
Disadvantage
Complexity
Using a database to support state management requires that the hardware and software configurations be more complex.
74
Shyam N. Chawda 9374928879
Thanks
75