SIGN UP MEMBER LOGIN:    
ARTICLE

Using Cookie-less Session in ASP.NET

Posted by Deepak Sharma Articles | ASP.NET Programming February 07, 2012
In this article we will learn to use a Session even if Cookies of the user’s browser is disabled
Reader Level:

Introduction

We use Session in ASP.NET application to maintain the state of the user. These Sessions too use Cookies in the background to associate Sessions with the correct user. But if a user has turned off his browser's cookies then our application will not work on these browsers. For this situation we use Cookie-less Sessions. In Cookie-less Sessions, the values that are required to associate users with their sessions are appended to the browser's URL.

Session

As we know HTTP is a stateless protocol and every request to a web page is treated as a new request. Session is a way of maintaining the state of a page. A session stores user specific data that persists across multiple page requests. We can store any type of object in a session.

Example

Session.Add("Name", txtName.Text);
Session["Name"] = " txtName.Text;

Here, both statements can be used to store a value of the "txtName" TextBox in Session.

Similarly, we can also add any other object in the session, like a DataSet.

SqlConnection con = new SqlConnection(ConString);
SqlCommand cmd = new SqlCommand("SELECT * FROM Employee", con);
SqlDataAdapter sda = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
sda.Fill(ds);

To retrieve the session value, we can use the following code:

if (Session["Name"] != null)
{
    txtName.Text = Session["Name"].ToString();               
}


First, we check if a session with name "Name" exists. Then we put the session vaule in the TextBox.

How to Cookie-less Session

By default a session uses a cookie in the background. To enable a cookie-less session, we need to change some configuration in the Web.Config file. Follow these steps:

  1. Open Web.Config file
  2. Add a <sessionState> tag under <system.web> tag
  3. Add an attribute "cookieless" in the <sessionState> tag and set its value to "AutoDetect" like below:

    <sessionState cookieless="AutoDetect" regenerateExpiredSessionId="true"/>

The possible values for "cookieless" attribute are:

  • AutoDetect : Session uses background cookie if cookies are enabled. If cookies are disabled, then the URL is used to store session information.
  • UseCookie: Session always use background cookie. This is default.
  • UseDeviceProfile: Session uses background cookie if browser supports cookies else URL is used.
  • UseUri: Session always use URL.

"regenerateExpiredSessionId" is used to ensure that if a cookieless url is expired a new new url is created with a new session. And if the same cookieless url is being used by multiple users an the same time, they all get a new regenerated session url.

We have configured our "Web.config" file to enable cookieless session. Now, its time to test it.

Open Mozilla Firefox and Click on (Tools -> Options -> Pricacy)

Now on History group box select (Firefox will : Use custom settings for history)

Now uncheck (Accept cookeies from sites)

Cookie1.gif

You will get an URL something like this:

Cookie2.gif
 

Login to add your contents and source code to this article
share this article :
post comment
 

thank you for your nice explanation

Posted by hassan wasef Apr 19, 2012

Got a clear picture. Thanks.

Posted by Mannava SivaAditya Feb 27, 2012

Thanks friends !!!

Posted by Deepak Sharma Feb 09, 2012

Thank you so much for such an article

Posted by Sonakshi Singh Feb 07, 2012

Well explained. Thanks for this article.

Posted by Alok Pandey Feb 07, 2012
Team Foundation Server Hosting
Become a Sponsor
PREMIUM SPONSORS
  • The leading .NET charting control now features PDF, Flash and Silverlight export, visualization of large datasets and more. Deliver true charting functionality to your BI, Scorecard, Presentation or Scientific apps. Download evaluation now.
    Get 2 Months Free of ASP.NET Hosting for Only $4.95/month! Receive FREE MS SQL and MySQL Databases Including ASP.NET 4/3.5, MVC 3.0, Silverlight 4, Windows 2008/IIS 7.0 Plus FREE IIS 7 Modules. Host UNLIMITED ASP.NET Web Sites - Click Here!
Nevron Gauge for SharePoint
Become a Sponsor