ASPXAUTH cookie не сохраняется - PullRequest
       22

ASPXAUTH cookie не сохраняется

6 голосов
/ 14 декабря 2009

Я работаю над веб-проектом в ASP .NET MVC 2.

В этом проекте мы храним некоторую информацию в зашифрованном файле cookie (cookie ASPXAUTH), чтобы избежать необходимости запрашивать базу данных для каждого запроса.

Дело в том, что код этой части внезапно перестал работать.

Я проверил изменения, внесенные в код на сервере управления версиями, на предмет чего-либо, что могло его вызвать, я ничего не нашел. Я даже вернулся к известной рабочей копии (работающей на ПК других лиц, с тем же кодом и т. Д.), Но после отладки кажется, что файл cookie .ASPXAUTH больше не сохраняется. Вместо этого устанавливается файл cookie ASP.NET_SessionId ... (которого раньше не было)

Я изменил файл web.config, чтобы отключить sessionState. Это исключило возможность установки файла cookie ASP.NET_SessionId, но все еще не сохраняет файл cookie авторизации.

Я недавно установил несколько обновлений Microsoft Windows XP, но другой человек (чей компьютер прекрасно работает с приложением) также сделал это.

После поиска в Google, некоторая информация, которую я нашел, указала на проблему с датой истечения срока действия куки. Эфир, потому что у компьютера не было правильного времени / даты (это было не так), а другие, потому что дата истечения срока действия куки была неправильно установлена. (Я проверил, и он устанавливается правильно) ...

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

Есть идеи, почему это происходит?

Я буду продолжать публиковать любую полезную информацию, которую смогу найти.

Заранее спасибо.

Ответы [ 2 ]

9 голосов
/ 14 декабря 2009

Возможно, ваше печенье стало слишком большим. Я столкнулся с той же проблемой. Если ваш файл cookie становится слишком большим, он просто не будет работать, в зависимости от браузера, конечно,

* MSDN 1004 *

cookie-файлы обычно ограничены 4096 байтами, и вы не можете хранить более 20 cookie-файлов на сайт. Используя один файл cookie с подключами, вы используете меньшее количество из этих 20 файлов cookie, выделенных вашему сайту. Кроме того, один файл cookie занимает около 50 символов для накладных расходов (информация об истечении срока действия и т. Д.) Плюс длина значения, которое вы храните в нем, и все это учитывает ограничение в 4096 байт. Если вы храните пять подразделов вместо пяти отдельных файлов cookie, вы сохраняете накладные расходы отдельных файлов cookie и можете сэкономить около 200 байт.

Каков максимальный размер ключа cookie веб-браузера?

что происходит, когда размер файла cookie превышает максимальный размер?

1 голос
/ 18 мая 2016

Простой способ проверить размер файлов cookie - отладить и запустить следующий код

int cookieSize = System.Text.UTF8Encoding.UTF8.GetByteCount(faCookie.Values.ToString());

Если это превышение лимита, вы будете сталкиваться с проблемами.

...