Создание приложения без файлов cookie на компьютере разработчика с asp.net - PullRequest
9 голосов
/ 23 февраля 2010

Я попытался опубликовать это на ServerFault без удачи, поэтому я пытаюсь здесь.

Я подумываю о настройке нового домена для размещения статического контента на моем веб-сайте, чтобы он был без файлов cookie, как Stackoverflow с их статическим доменом . Поэтому, прежде чем покупать и настраивать домен, я хотел сначала протестировать его на своей машине для разработки под localhost (должен отметить, что я планирую запустить IIS на моем новом домене для статических файлов).

Поэтому я создал новое приложение под IIS и отключил состояние сеанса и проверяет подлинность форм. Когда моему основному приложению нужны ресурсы, такие как css, images и js, я использую путь к «статическому» приложению, в котором они размещены.

Проблема в том, что когда я смотрю на запрос и ответ для запрошенных файлов, у них все еще есть определенный cookie-файл session_id, а также cookie-файл аутентификации asp.net.

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

Обновление

Мои настройки были следующими. Я создал два веб-приложения. - Одно веб-приложение для сайта - одно веб-приложение для всего статического (CSS, изображения, скрипты ...)

Оба приложения добавляются в IIS, и ни одно из них не является вложенным приложением другого. (Оба являются отдельными веб-сайтами в структуре IIS).

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

Ответы [ 4 ]

7 голосов
/ 27 октября 2011

Убедитесь, что у вас есть следующие настройки web.config:

  • <sessionState mode="Off" />
  • <authentication mode="None" />

Я думаю, что это все, хотя я не проверял это. Чтобы быть в безопасности, вы можете воспользоваться советом Создание статического веб-сайта с содержимым в IIS 7 , который отключает все модули и только повторно включает их при необходимости:

<system.webserver> 
    <modules>
        <clear />
        <add name="StaticFileModule" ... />
        ...
    </modules>
    ...
</system.webserver>

PS: см. этот ответ для подсказок по настройке значений кэша.

1 голос
/ 02 ноября 2011

Основная идея:

  1. Создайте новый сайт в IIS (сопоставьте его с поддоменом или сделайте его полностью отдельным сайтом. Иногда suddomains недостаточно, если пользователи заходят на ваш сайт с http://example.com вместо http://www.example.com с тех пор, как в первом случае куки, вероятно, будут отправлены и на новый поддомен).
  2. ОТКЛЮЧИТЕ ASP.NET все вместе в IIS для вашего нового сайта. Если вы просто обслуживаете статический контент, вам не нужно включать ASP.Net
  3. Загрузите свой статический контент и ссылку прочь

Справка:
- Остановка установки файлов cookie из домена (он же «домен без файлов cookie») для повышения производительности сайта
- Как соблюдать правило скорости страницы "Обслуживание статического содержимого с домена без файлов cookie" в IIS6?
- Как избежать куки при запросе статического контента

0 голосов
/ 03 ноября 2011

Вы пробовали Response.Cookies.Clear () в конце метода загрузки страницы?Это должно удалить все куки из объекта Response, и никакие куки не будут отправлены клиенту.Это также можно сделать в веб-модуле или в HttpHandler.

0 голосов
/ 23 февраля 2010

Проблема в том, что когда я смотрю на запрос и ответ для запрошенные файлы, они все еще имеют определен cookie для session_id

Это потому, что HttpRequest.Cookies является свойством для Request объекта.


Это может помочь понять

...