Как определить, отключены ли cookie на стороне сервера - PullRequest
90 голосов
/ 10 февраля 2009

Как я могу определить на сервере (на стороне сервера), отключены ли куки в браузере? Возможно ли это?

Подробное объяснение: Я обрабатываю HTTP-запрос на сервере. Я хочу установить cookie через заголовок Set-Cookie. В то время мне нужно знать, будет ли файл cookie установлен браузером клиента, или мой запрос на установку файла cookie будет проигнорирован.

Ответы [ 15 ]

1 голос
/ 03 октября 2011

Если вы хотите только проверить, включены ли сеансовые cookie-файлы (cookie-файлы, существующие на протяжении всего сеанса), установите режим сеанса на AutoDetect в файле web.config, а затем Asp.Net. Framework запишет cookie в браузер клиента с именем AspxAutoDetectCookieSupport . Затем вы можете найти этот файл cookie в коллекции Request.Cookies, чтобы проверить, включены ли сеансовые файлы cookie на клиенте.

например. в вашем наборе файлов web.config:

<sessionState cookieless="AutoDetect" />

Затем проверьте, включены ли файлы cookie на клиенте с помощью:

if (Request.Cookies["AspxAutoDetectCookieSupport"] != null)  { ... }

Sidenote: По умолчанию для этого параметра установлено значение UseDeviceProfile, которое будет пытаться записывать файлы cookie для клиента, если клиент поддерживает их, даже если куки отключены. Я нахожу несколько странным, что это опция по умолчанию, так как она кажется бессмысленной: сеансы не будут работать с отключенными файлами cookie в браузере клиента, если для него установлено значение UseDeviceProfile, и если вы поддерживаете режим без файлов cookie для клиентов, которые не поддерживают файлы cookie , то почему бы не использовать AutoDetect и поддерживать режим без файлов cookie для клиентов, у которых они отключены ...

1 голос
/ 10 февраля 2009

Вопрос о том, включены ли файлы cookie, слишком логический. Мой браузер (Opera) имеет настройку cookie для каждого сайта. Кроме того, эта настройка не да / нет. Наиболее полезная форма на самом деле «только для сессии», игнорируя дату истечения срока действия серверов. Если вы проверите его сразу после установки, он будет там. Завтра не будет.

Кроме того, поскольку это параметр, который вы можете изменить, даже проверка того, остаются ли куки-файлы, только говорит вам о настройке при тестировании . Я мог бы принять это печенье вручную. Если я продолжу получать спам, я могу (а иногда и буду) просто отключить куки для этого сайта.

0 голосов
/ 06 июня 2014

Свойство cookieEnabled возвращает логическое значение, которое указывает, включены ли в браузере файлы cookie

<script>
if (navigator.cookieEnabled) {
    // Cookies are enabled
}
else {
    // Cookies are disabled
}
</script>
0 голосов
/ 19 января 2014
<?php   session_start();
if(SID!=null){
  echo "Please enable cookie";
}
?>
0 голосов
/ 11 февраля 2013

Использовать navigator.CookieEnabled для включенных файлов cookie (он вернет true из false) и тег html noscript. Кстати, navigator.cookieEnabled - это javascript, поэтому не вводите его как HTML

...