Лучший способ определить, включены ли файлы cookie в ASP.NET? - PullRequest
22 голосов
/ 17 октября 2008

Каков наилучший метод определения, если в браузере пользователя включены файлы cookie в ASP.NET

Ответы [ 8 ]

18 голосов
/ 17 октября 2008

Установить cookie, принудительно перенаправить на какую-нибудь страницу проверки и проверить cookie.

Или установите cookie для каждой загрузки страницы, если она еще не установлена. Например, я предполагаю, что это необходимо для проверки того, поддерживаются ли файлы cookie для отображения сообщения при попытке входа в систему, что им необходимо включить файлы cookie. Установите для своего файла cookie для входа какое-либо значение по умолчанию для гостевых пользователей, если они еще не настроили этот файл. Затем на странице входа проверьте cookie пользователя и, если он не установлен, отобразите свое сообщение.

4 голосов
/ 03 ноября 2013

@ Мэттью прав, единственный способ узнать это - установить cookie, перенаправить, а затем проверить его. Вот функция C # для предварительной проверки, которую вы можете поместить в событие загрузки страницы:

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;
}


Вы также можете сделать это в javascript следующим образом:
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;
}
1 голос
/ 04 июля 2009

Ну, я думаю, если мы сможем сохранить cookie в начале сеанса Global.ASAX и прочитать это на странице ... разве это не лучший способ?

1 голос
/ 17 октября 2008

Написать cookie, перенаправить, посмотреть, можете ли вы прочитать cookie.

0 голосов
/ 09 сентября 2015

По сути то же решение, что и меда, но в VB.NET:

Private Function IsCookieDisabled() As Boolean
    Dim currentUrl As String = Request.RawUrl
    If Request.Browser.Cookies Then
        'Your Browser supports cookies 
        If Request.QueryString("cc") Is Nothing Then
            'not testing the cookie so create it
            Dim c As HttpCookie = New HttpCookie("SupportCookies", "true")
            Response.Cookies.Add(c)
            If currentUrl.IndexOf("?") > 0 Then
                currentUrl = currentUrl + "&cc=true"
            Else
                currentUrl = currentUrl + "?cc=true"
            End If
            Response.Redirect(currentUrl)
        Else
            'let's check if Cookies are enabled
            If Request.Cookies("SupportCookies") Is Nothing Then
                'Cookies are disabled
                Return True
            Else
                'Cookies are enabled
                Return False
            End If
        End If
    Else
        Return True
    End If
End Function
0 голосов
/ 11 июня 2014

Функция C # меда работает, хотя вы должны изменить строку:

HttpCookie cookie = new HttpCookie ("", "");

до

HttpCookie cookie = новый HttpCookie ("CookieTest", "CookieTest");

0 голосов
/ 04 февраля 2011

Вы также можете проверить значение Request.Browser.Cookies. Если true, браузер поддерживает куки.

0 голосов
/ 06 апреля 2010

это лучший способ

взято из http://www.eggheadcafe.com/community/aspnet/7/42769/cookies-enabled-or-not-.aspx

function cc()
{
 /* check for a cookie */
  if (document.cookie == "") 
  {
    /* if a cookie is not found - alert user -
     change cookieexists field value to false */
    alert("COOKIES need to be enabled!");

    /* If the user has Cookies disabled an alert will let him know 
        that cookies need to be enabled to log on.*/ 

    document.Form1.cookieexists.value ="false"  
  } else {
   /* this sets the value to true and nothing else will happen,
       the user will be able to log on*/
    document.Form1.cookieexists.value ="true"
  }
}

благодаря Venkat K

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...