2009-09-21 2 views
2

Я хочу проверить, разрешено ли использование файлов cookie. Большинство решений включают: 1. создание файла cookie 2. перенаправлять пользователя на пользовательскую страницу или на ту же страницу. 3. Прочтите файл cookie.Проверка файлов cookie в asp.net

Вопрос, который у меня есть, находится на втором этапе. Должен ли я использовать строку запроса при выполнении response.redirect, так что в следующей поездке я знаю, что файл cookie уже установлен и что я должен попытаться его прочитать? Что делать, если пользователь жестко кодирует URL-адрес (вместе с этой строкой запроса) в браузере при доступе к веб-сайту? Кроме того, если я обнаружил, что файлы cookie включены, и я установил переменную сеанса, чтобы сказать, что файлы cookie включены в этом браузере, поэтому не проверяйте снова в этом сеансе. Это нормально? Если сеанс доступен, это хороший индикатор того, что файлы cookie включены?

Я хочу свести к минимуму эти двойные поездки на каждую страницу для проверки файлов cookie.

ответ

0

Никогда не пропустите запрос. Вы уже намекали на это выше, но что, если какой-нибудь трюк рисует наш url и решает, что они хотят передать свой собственный запрос?

Если у пользователя есть файлы cookie, вы можете установить сеанс и проверить это. Всегда проверить сеанс.

+0

Спасибо CitizenBane .. ОК .. Если разрешено использование файлов cookie, я могу установить сеанс и проверить его во всех последующих поездках на сайт. Если файлы cookie отключены, можно ли это доказать? – AgentHunt

+0

Вы не получите сеанс. Сеансы Asp.net зависят от того, что вы включили файлы cookie. Попробуйте сами: отключите файлы cookie и отлаживайте свой код. – CitizenBane

+0

> Сессии asp.net зависят от того, что вы включили файлы cookie Не всегда, у ASP.net есть режим для SessionState = "cookieless" Он работает, помещая уникальный sessionid в каждый URL-адрес дорожка. –

0

вместо использования этой техники, которая включает в себя несколько шагов и страниц и дополнительное время ожидания для конечного пользователя, не можете ли вы просто использовать класс HttpBrowserCapabilities? Данный класс имеет свойство Cookies:

HttpBrowserCapabilities.Cookies Property

Grz, Kris.

+0

Я считаю, что это свойство проверяет, поддерживает ли браузер файлы cookie. Я хочу проверить, включены ли файлы cookie для включения/отключения. Я думаю, что это разные вещи. Помоги мне, если я ошибаюсь. – AgentHunt

1

Я бы использовал javascript для асинхронного запроса и проверил, были ли возвращены файлы cookie в этот запрос.

+0

Мне нужно разместить этот код на всякий случай, если javascript отключен :( – AgentHunt

0

Как мне известно, я знаю два способа проверить, позволяет ли браузер/приема печенье

  1. С помощью "Request.Browser.Cookies"

  2. С помощью Javascript/Jquery

Пример:

if (Request.Browser.Cookies) 
{ 
     Response.Write("Welcome To Hello World Cookies Accepted by the browser"); 
} 
else 
{ 
       Response.Write("Good Bye To Hello World. Cookie diabled in your browser. Enable cookies and Try again... Cool.."); 

} 
Смежные вопросы