Как вы определяете, что куки отключены * без * javascript и * без * перенаправления? - PullRequest
1 голос
/ 05 августа 2010

Если я отключу JavaScript и куки, Amazon.com обнаружит, что куки отключены без перенаправления. Если вы нажмете ссылку на корзину, на странице корзины появится только информация.

Я предполагаю, что amazon.com, скорее всего, не использует ASP.NET, но как бы вы смогли обнаружить отключенные файлы cookie с помощью ASP.NET без использования JavaScript и перенаправления? Можно ли определить, отключены ли файлы cookie в одном цикле?

Ответы [ 4 ]

2 голосов
/ 05 августа 2010

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

В принципе, я считаю, что будет работать следующее:

Ответ 'GET /index.html' устанавливает файлы cookie (они приходят в заголовок и хранятся до index.html получен и обработан).

Вы можете проверить файлы cookie во время обслуживания, скажем «GET /TinyImage.gif», если у вас нет проблем с кэшированием и вы динамически реагируете на изображения.

Итак, последняя проблема: как вы сообщите пользователю о своих выводах из запроса TinyImage?Определенно не легко, но если вы используете IFrame вместо простого тега, вы можете получить два запроса GET для одного рендеринга страницы.

Или вы можете быть по-настоящему безумным и фактически останавливать первый GET, пока второй GET не подтвердит настройки браузера.Это для некоторых мастеров HTTP, но если вы можете обернуть голову вокруг Comet (не AJAX, Comet!), Это может пригодиться.

Это определенно возможно, просто сложно.Буду ли я пытаться сделать это в ASP.NET?Ничего не могу пообещать, но делиться будет аккуратно.

2 голосов
/ 05 августа 2010

Я считаю, что то, что вы описываете, невозможно.Amazon, похоже, не делает этого.В качестве доказательства:

  1. Отключить JavaScript
  2. Очистить куки (но оставить их включенными)
  3. Перейдите сюда: http://www.amazon.com/gp/cart/view.html/ref=gno_cart

Вы получите сообщение «Пожалуйста, включите Cookies в вашем веб-браузере, чтобы продолжить».Но если вы перезагрузите страницу, сообщение исчезнет, ​​потому что куки были установлены при первом просмотре.

Причина, по которой это не работает, заключается в том, что когда ответ страницы устанавливает куки, сервер не может сказатьони были правильно установлены до следующего запроса.Конечно, вы можете обойти это с помощью JavaScript, но без этого сервер не сможет заранее узнать, поступает ли запрос от браузера, который будет принимать куки.

0 голосов
/ 05 августа 2010

Не могли бы вы, например, установить Cookie в Page_Init, а затем посмотреть, сможете ли вы прочитать его в Page_PreRender?

Не уверен, что это даже возможно, но это единственный способ, о котором я мог подумать.

0 голосов
/ 05 августа 2010

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

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