2015-06-27 26 views
0

Недавно я перевел веб-сайт с одного узла на другой.Сохранение .aspxauth membership cookie

Перед переходом проверка подлинности форм работала как обычно, и пользователи не вошли во все сеансы.

После перемещения пользователи выходят из системы после кажущегося случайного количества времени.

Я проверил сетевой трафик и файл .aspxauth был отправлен на сервер.

Я отлаживал проблему локально, и снова cookie отправляется, но он не отображается в Request.Cookies. Google сообщает мне, что это связано с тем, что если ASP.NET не может расшифровать файл cookie .aspxauth, он скрывает его из коллекции Request.Cookies.

Благодаря

ответ

0

Это кажется немного смешным, что ASP.NET не может расшифровать куки, что это зашифрованное себя, но это действительно то, что происходит.

Для шифрования файла cookie ASP.NET использует параметр MachineKey в файле web.config или machine.config. К сожалению, настройка по умолчанию для этого «AutoGenerate, IsolateApps», и в этом случае ASP.NET генерирует новое значение каждый раз, когда пул приложений восстанавливается и, следовательно, не может читать существующие файлы cookie.

Способ обойти это, чтобы указать ключ в web.config или machine.config, есть некоторые интерактивные инструменты для создания одного (например, http://www.developerfusion.com/tools/generatemachinekey/) и некоторые оффлайновых инструментов для более параноидальным (http://www.codeproject.com/Articles/16645/ASP-NET-machineKey-Generator)

Когда это будет сделано, это должно выглядеть примерно так:

<machineKey 
validationKey="12365A372...etc...34897" 
decryptionKey="A76568...etc...1239847FD" 
validation="SHA1" decryption="AES"> 

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

  • Нет связанных вопросов^_^