Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Best way to determine if cookies are enabled in ASP.NET?

Tags:

What is the best method for determining if a users browser has cookies enabled in ASP.NET

like image 705
Ryan Sampson Avatar asked Oct 16 '08 21:10

Ryan Sampson


People also ask

Does ASP.NET use cookies?

By default, ASP.NET uses a non-persistent cookie to store the session state. However, if a user has disabled cookies on the browser, session state information cannot be stored in a cookie.


2 Answers

Set a cookie, force a redirect to some checking page and check the cookie.

Or set a cookie on every pageload, if it's not already set. For instance, I assume this is to check if cookies are supported to display a message when they try to login that they need to enable cookies. Set your login cookie to some default value for guest users if they don't have the cookie set yet. Then on your login page, check for the user cookie, and if it's not set, then display your message.

like image 59
Matthew Scharley Avatar answered Sep 27 '22 23:09

Matthew Scharley


@Mattew is right the only way to find out is to set a cookie, redirect, then check it. Here is a C# function to preform that check you can put this in your page load event:

private bool cookiesAreEnabled() { bool cookieEnabled = false;  if(Request.Browser.Cookies) {    //Your Browser supports cookies     if (Request.QueryString["TestingCookie"] == null)    {      //not testing the cookie so create it      HttpCookie cookie = new HttpCookie("CookieTest","");      Response.Cookies.Add(cookie);       //redirect to same page because the cookie will be written to the client computer,       //only upon sending the response back from the server       Response.Redirect("Default.aspx?TestingCookie=1")    }    else    {      //let's check if Cookies are enabled       if(Request.Cookies["CookieTest"] == null)       {         //Cookies are disabled       }       else       {         //Cookies are enabled         cookieEnabled = true;       }       }  } else {   // Your Browser does not support cookies } return cookieEnabled; } 


You can do it in javascript also, this way :
function cookiesAreEnabled() {        var cookieEnabled = (navigator.cookieEnabled) ? 1 : 0;        if (typeof navigator.cookieEnabled == "undefined" && cookieEnabled == 0){        document.cookie="testcookie";        cookieEnabled = (document.cookie.indexOf("test­cookie") != -1) ? 1 : 0;      }       return cookieEnabled == 1; } 
like image 28
meda Avatar answered Sep 28 '22 01:09

meda