Click here to Skip to main content
11,635,053 members (74,002 online)
Click here to Skip to main content

Cookies in ASP.NET

, 25 Aug 2011 CPOL 230.5K 8.2K 104
Rate this:
Please Sign up or sign in to vote.
In this quick post, you will learn all about cookies used in web based applications.

Introduction

Cookies are also known by many names, HTTP Cookie, Web Cookie, Browser Cookie, Session Cookie, etc. Cookies are one of several ways to store data about web site visitors during the time when web server and browser are not connected. Common use of cookies is to remember users between visits. Practically, cookie is a small text file sent by web server and saved by web browser on client machine.

Use of Cookies?

Cookies may be used for authentication, identification of a user session, user's preferences, shopping cart contents, or anything else that can be accomplished through storing text data. Cookies can also be used for travelling of data from one page to another.

Is Cookies Secured?

Well, this question has no specific answers in YES or NO. Cookies could be stolen by hackers to gain access to a victim's web account. Even cookies are not software and they cannot be programmed like normal executable applications. Cookies cannot carry viruses and cannot install malware on the host computer. However, they can be used by spyware to track user's browsing activities.

Using Cookies

Creating/Writing Cookies

There are many ways to create cookies, I am going to outline some of them below:

Way 1 (by using HttpCookies class)

//First Way
HttpCookie StudentCookies = new HttpCookie("StudentCookies");
StudentCookies.Value = TextBox1.Text;
StudentCookies.Expires = DateTime.Now.AddHours(1);
Response.Cookies.Add(StudentCookies);

Way 2 (by using Response directly)

//Second Way
Response.Cookies["StudentCookies"].Value = TextBox1.Text;
Response.Cookies["StudentCookies"].Expires = DateTime.Now.AddDays(1);

Way 3 (multiple values in same cookie)

//Writing Multiple values in single cookie
Response.Cookies["StudentCookies"]["RollNumber"] = TextBox1.Text;
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); 

Reading/Getting Cookies

In the above code, I have used many ways to write or create cookies so I need to write here using all the above ways separately.

For Way 1

string roll = Request.Cookies["StudentCookies"].Value; //For First Way

For Way 2

string roll = Request.Cookies["StudentCookies"].Value;  //For Second Way

For Way 3

//For Multiple values in single cookie
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; 

Deleting Cookies

In the above code, I have used many ways to create or read cookies. Now look at the code given below which will delete cookies.

if (Request.Cookies["StudentCookies"] != null)
{
    Response.Cookies["StudentCookies"].Expires = DateTime.Now.AddDays(-1);
    Response.Redirect("Result.aspx");  //to refresh the page
}

Understanding HttpCookie Class It contains a collection of all cookie values.

We do not need to use any extra namespaces for HttpCookies class (we already have used this in Way 1 above), because this class is derived from System.Web namespaces. HttpCookies class lets us work with cookies without using Response and Request objects (we have already used this in Way 2 and Way 3 above).

image002.jpg

HttpCookie class has a list of some properties, let us outline them.

  • Domain: It contains the domain of the cookie.
  • Expires: It contains the expiration time of the cookie.
  • HasKeys: It contains True if the cookie has subkeys.
  • Name: It contains the name of the cookie.
  • Path: It contains the virtual path to submit with the cookie.
  • Secure: It contains True if the cookie is to be passed in a secure connection only.
  • Value: It contains the value of the cookie.
  • Values:

Limitations of Cookies

There are following limitations for cookies:

  1. Size of cookies is limited to 4096 bytes.
  2. Total 20 cookies can be used on a single website; if you exceed this browser will delete older cookies.
  3. End user can stop accepting cookies by browsers, so it is recommended to check the users’ state and prompt the user to enable cookies.

Sometimes, the end user disables the cookies on browser and sometimes browser has no such feature to accept cookies. In such cases, you need to check the users’ browser at the home page of website and display the appropriate message or redirect on appropriate page having such message to enable it first. The following code will check whether the users’ browser supports cookies or not. It will also detect if it is disabled too.

protected void Page_Load(object sender, EventArgs e)
{
    if (Request.Browser.Cookies)
    {
        //supports the cookies
    }
    else
    {
        //not supports the cookies
        //redirect user on specific page
        //for this or show messages
    }
}

It is always recommended not to store sensitive information in cookies.

Download the sample code attached with this post to check it yourself.

So, that is all about the ASP.NET cookies. Please post your feedback.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Share

About the Author

Abhimanyu Kumar Vatsa
Founder ITORIAN.COM
India India
Abhimanyu Kumar Vatsa (Abhimanyu Kumar Singh) is a Microsoft MVP and Mindcracker (C# Corner) MVP (2010, 2011) and having experience in building web scale applications using Microsoft Technologies including ASP.NET, MVC, C#/VB, jQuery, JavaScript, Silverlight, SQL Server and many more web stuffs. He is also handy in non-Microsoft Technologies like PHP, ColdFusion etc but he’s specility is always Microsoft. He love to work with Internet scale projects using Microsoft stuffs that has potential to change the every day use of technology. He love to blog and started it around June 2009 and because such blogging Microsoft awarded him MVP.

You may also be interested in...

Comments and Discussions

 
QuestionMy Vote 5 Pin
Dharmesh .S. Patil12-Jul-15 18:57
professionalDharmesh .S. Patil12-Jul-15 18:57 
Question(Y) Pin
Member 1170275619-May-15 4:24
memberMember 1170275619-May-15 4:24 
Questioncomment Pin
Member 22338445-Feb-15 6:19
memberMember 22338445-Feb-15 6:19 
GeneralVery Nice Pin
vickycode418-Dec-14 0:51
membervickycode418-Dec-14 0:51 
QuestionMy vote of 5 Pin
Asım Ölmez16-Oct-14 21:40
memberAsım Ölmez16-Oct-14 21:40 
Generalgood work Pin
Raza Syed10-Sep-14 1:43
memberRaza Syed10-Sep-14 1:43 
GeneralHow to Create and Read Cookies In ASP.NET Using C# Pin
Binu198514-Jun-14 6:20
memberBinu198514-Jun-14 6:20 
QuestionHow to use cookies for storing multiple cart product and retrive them in shopping website Pin
grvgarg25-Apr-14 12:27
professionalgrvgarg25-Apr-14 12:27 
GeneralMy vote of 3 Pin
abhishek123456725-Feb-14 7:45
memberabhishek123456725-Feb-14 7:45 
Question5 Pin
Ronak Dey1-Jan-14 19:05
memberRonak Dey1-Jan-14 19:05 
GeneralSimple and Clear Pin
VICK23-Oct-13 18:35
member VICK23-Oct-13 18:35 
GeneralMy vote of 5 Pin
Britteandy26-Sep-13 1:58
memberBritteandy26-Sep-13 1:58 
GeneralMy vote of 5 Pin
Member 770584528-Jul-13 19:53
memberMember 770584528-Jul-13 19:53 
GeneralMy vote of 5 Pin
Lê Xuân Tiến26-May-13 19:16
memberLê Xuân Tiến26-May-13 19:16 
GeneralMy vote of 5 Pin
Аslam Iqbal19-May-13 0:13
memberАslam Iqbal19-May-13 0:13 
GeneralMy vote of 5 Pin
mdogggg25-Apr-13 1:08
membermdogggg25-Apr-13 1:08 
GeneralThanx bro.Really very nice and simple explanation about cookies.It helps me a lot. :) Pin
Tushar Kanti Das8-Apr-13 23:38
memberTushar Kanti Das8-Apr-13 23:38 
GeneralMy vote of 5 Pin
Alireza_13624-Apr-13 16:18
memberAlireza_13624-Apr-13 16:18 
GeneralMy vote of 5 Pin
Azziet12-Mar-13 20:06
memberAzziet12-Mar-13 20:06 
GeneralMy vote of 5 Pin
csharpbd11-Mar-13 23:57
membercsharpbd11-Mar-13 23:57 
Questionmy vote 5 Pin
Nitin Sawant11-Mar-13 23:51
memberNitin Sawant11-Mar-13 23:51 
SuggestionNice but need more information on cookies... Pin
rajneeshrai28-Feb-13 19:13
memberrajneeshrai28-Feb-13 19:13 
SuggestionRe: Nice but need more information on cookies... Pin
Vasudevan Deepak Kumar4-Apr-13 6:48
memberVasudevan Deepak Kumar4-Apr-13 6:48 
GeneralMy vote of 5 Pin
VitorHugoGarcia22-Feb-13 3:25
memberVitorHugoGarcia22-Feb-13 3:25 
Questioncookie acceptance code in asp & vb.net Pin
satya muntha17-Jan-13 4:46
membersatya muntha17-Jan-13 4:46 
SuggestionThanks Pin
aspplus6-Jan-13 12:27
memberaspplus6-Jan-13 12:27 
GeneralMy vote of 4 Pin
zhxhdean21-Oct-12 20:06
memberzhxhdean21-Oct-12 20:06 
GeneralMy vote of 4 Pin
Eng_kashi24-Sep-12 19:19
memberEng_kashi24-Sep-12 19:19 
GeneralAbout ur article Pin
mohan.miriyala6-Sep-12 8:30
membermohan.miriyala6-Sep-12 8:30 
Questionnice artical Pin
sandeep nagabhairava6-Aug-12 0:10
membersandeep nagabhairava6-Aug-12 0:10 
GeneralMy vote of 5 Pin
zhxhdean12-Jul-12 20:37
memberzhxhdean12-Jul-12 20:37 
Questionvery informative Pin
Member 773967311-Jul-12 7:29
memberMember 773967311-Jul-12 7:29 
GeneralMy vote of 5 Pin
ramanakamma18-Jun-12 18:32
memberramanakamma18-Jun-12 18:32 
Questionpls its urgent Pin
Priya Paapu23-Apr-12 17:58
memberPriya Paapu23-Apr-12 17:58 
GeneralMy vote of 5 Pin
Member 832439327-Feb-12 5:23
memberMember 832439327-Feb-12 5:23 
GeneralMy vote of 5 Pin
Sunil Mane 00714-Feb-12 21:37
memberSunil Mane 00714-Feb-12 21:37 
QuestionFile download is corrupt and won't open with winzip or explore. Pin
sma77714-Feb-12 5:29
membersma77714-Feb-12 5:29 
GeneralMy vote of 5 Pin
Muthukrish5916-Jan-12 5:46
memberMuthukrish5916-Jan-12 5:46 
GeneralMy vote of 5 Pin
zerocool185-Nov-11 18:21
memberzerocool185-Nov-11 18:21 
GeneralMy vote of 5 Pin
irritaldo3-Oct-11 1:48
memberirritaldo3-Oct-11 1:48 
QuestionWay 1 and 2 for reading cookies Pin
BrianBissell1-Sep-11 9:50
memberBrianBissell1-Sep-11 9:50 
GeneralMy vote of 5 Pin
BrianBissell1-Sep-11 9:48
memberBrianBissell1-Sep-11 9:48 
GeneralMy vote of 4 Pin
SREENATH.G1-Sep-11 8:29
memberSREENATH.G1-Sep-11 8:29 
QuestionThe link for the download didn't work Pin
Ger F.30-Aug-11 22:32
memberGer F.30-Aug-11 22:32 
GeneralMy vote of 4 Pin
germ1330-Aug-11 19:13
membergerm1330-Aug-11 19:13 
QuestionReading Cookies through Response Pin
taloweb26-Aug-11 22:24
membertaloweb26-Aug-11 22:24 
GeneralCookie limitations Pin
DaveAuld26-Aug-11 1:23
mentorDaveAuld26-Aug-11 1:23 
GeneralRe: Cookie limitations Pin
Abhimanyu Kumar Vatsa26-Aug-11 4:33
memberAbhimanyu Kumar Vatsa26-Aug-11 4:33 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Terms of Use | Mobile
Web02 | 2.8.150728.1 | Last Updated 26 Aug 2011
Article Copyright 2011 by Abhimanyu Kumar Vatsa
Everything else Copyright © CodeProject, 1999-2015
Layout: fixed | fluid