Professional Documents
Culture Documents
Net
Client Side
Introduction
State Management is the process by which we maintain session related information and additional information about the controls and its state. The necessity of state management arises when multiple users request for the same or different Web Pages of a Web Site.
Types to be covered: 1. Cookies 2. Query Strings. 3. Hidden Field. 4. ViewState 5. Applications 6. Sessions 7. Profiles
Cookies
A cookie is a small text file sent by web server and saved by web browser on client machine. Cookies are also known by many names, HTTP Cookie, Web Cookie, Browser Cookie, Session Cookie, etc. Common use of cookies is to remember users between visits. In each cookie you can not save more than 4k of information.
clients can open cookies and see the content of a cookie so they are not secure. Cookies are usually used to save user preference information. Size of cookies is limited to 4096 bytes. Total 20 cookies can be used on a single website; if you exceed this browser will delete older cookies. End user can stop accepting cookies by browsers, so it is recommended to check the users state and prompt the user to enable cookies.
Types OF Cookies
There are 2 different types of cookies: 1. PERSISTANT COOKIES: A persistent cookie is one stored as a file on your computer, and it remains there when you close Internet Explorer. 2. TEMPORARY(SESSION) COOKIES: A temporary or session cookie is stored only for your current browsing session, and is deleted from your computer when you close your browser.
Example 1: Creating Cookies(Using HttpCookie Class): Take a new website and make design page as shown in the next slide. Do coding on login button click as shown below:
Coding on login button click: protected void Button1_Click(object sender, EventArgs e) { HttpCookie mycookie = new HttpCookie("cookie1"); mycookie["Name"] = TextBox1.Text; mycookie["password"] = TextBox2.Text; Response.Cookies.Add(mycookie); mycookie.Expires = DateTime.Now.AddDays(1); Response.Redirect("home.aspx"); }
Make another page as home.aspx and do coding on page load as shown: protected void Page_Load(object sender, EventArgs e) { HttpCookie reqcookie = Request.Cookies["cookie1"]; if (reqcookie != null) { Label1.Text = reqcookie["Name"]; Label2.Text = reqcookie["Password"]; } }
Example: Create Cookies( Using Response) Take a textbox and a button. On button click, do coking as: protected void Button1_Click(object sender, EventArgs e) { Response.Cookies["StudentCookies"].Value = TextBox1.Text; Response.Cookies["StudentCookies"].Expires = DateTime.Now.AddDays(1); Response.Redirect("home.aspx"); }
Example 3: Take a button and do coding as follows: protected void Button1_Click(object sender, EventArgs e) { Response.Cookies["StudentCookies"]["RollNumber"] = "12"; Response.Cookies["StudentCookies"]["FirstName"] = "Abhimanyu"; Response.Cookies["StudentCookies"]["MiddleName"] = "Kumar"; Response.Cookies["StudentCookies"]["LastName"] = "Vatsa"; Response.Cookies["StudentCookies"]["TotalMarks"] = "499"; Response.Cookies["StudentCookies"].Expires = DateTime.Now.AddDays(1); Response.Redirect("home2.aspx"); }
Take another page as home2.aspx and do coding on page load as: protected void Page_Load(object sender, EventArgs e) { string roll; roll = Request.Cookies["StudentCookies"]["RollNumber"]; roll = roll + " " + Request.Cookies["StudentCookies"]["FirstName"]; roll = roll + " " + Request.Cookies["StudentCookies"]["MiddleName"]; roll = roll + " " + Request.Cookies["StudentCookies"]["LastName"]; roll = roll + " " + Request.Cookies["StudentCookies"]["TotalMarks"]; Label1.Text = roll; }
Query strings provide a simple but limited way to maintain state information. some browsers and client devices impose a 2083-character limit on the length of the URL.
Example: protected void Button1_Click(object sender, EventArgs e) { int recordid = 10; Response.Redirect("Default2.aspx?recordid=" + recordid.ToString()); } Get the value in the same or another page. string id= Request.QueryString["recordid"];
Hidden Feilds
A HiddenField control stores a single variable in its Value property and must be explicitly added to the page. The information in a HiddenField control is not dis it can be read and set in client script. played when the browser renders the page. Example: <asp:hiddenfield id="ExampleHiddenField" value="Example Value" runat="server"/>
ViewState Controls
The ViewState property provides a dictionary object for retaining values between multiple requests for the same page. When the page is processed, the current state of the page and controls is hashed into a string and saved in the page as a hidden field, or multiple hidden fields if the amount of data stored in the ViewState property exceeds the specified value in the MaxPageStateFieldLength property.
Make a login application in which user is given 3 chances to login: Code: int counter = 3; SqlConnection con = new SqlConnection(); protected void Page_Load(object sender, EventArgs e) { con.ConnectionString = ConfigurationManager.ConnectionStrings["cn"].Connection String; if (con.State == ConnectionState.Closed) { con.Open(); }
if (!Page.IsPostBack) { Label2.Text = counter.ToString(); ViewState["count"] = counter; } protected void Button1_Click(object sender, EventArgs e) { SqlCommand cmd = new SqlCommand(); cmd.CommandText = "select password from Table1 where name=@sname"; cmd.Connection = con; cmd.Parameters.Add("@sname", SqlDbType.VarChar,50).Value = TextBox1.Text;
SqlDataReader dr1 = cmd.ExecuteReader(); if (dr1.HasRows) { dr1.Read(); if (TextBox2.Text == dr1["password"].ToString()) { Label1.Text = "you are successfully login"; } else { int i = (int)ViewState["count"]; i = i - 1; ViewState["count"] = i;
if (i > 0) { Label1.Text = "retry ...you have " + i + "chances left now"; } else { Response.Redirect("user.aspx"); } } } dr1.Close(); cmd.Dispose(); //dr.Close();
Comparison
1. ViewState can be applied to all data types of asp.net QueryStrings are limited to string data type. Cookies are limited to string types. 2. ViewState values are stored in hidden fields. Querystring in browsers url. Cookies in clients computer.
3. ViewState lifetime is permanent. Querystrings are lost when the user enters a new url or closes the browser. Cookies lifetime are set by programmers. 4. Scope of viewstate is limited to current page. Scope of querystrings are is limited to the target page. Scope of the cookies are limited to the entire application.