Анонимные файлы cookie ASPX не работают при изменении машинного ключа

Моя компания недавно столкнулась с резким скачком трафика, поэтому мы попытались запустить дополнительные инстансы EC2, чтобы справиться с нагрузкой. К сожалению, это вызвало у пользователей проблемы с файлами cookie (т. е. сайт продолжал запрашивать логин даже после того, как вы предоставили учетные данные). Мы думаем, что это связано с тем, что мы забыли установить ключ машины в нашем файле Web.config (в остальном файлы Web.config на каждой машине с балансировкой нагрузки идентичны).

Теперь мы находимся в ситуации, когда мы не хотим устанавливать новое значение ключа машины в Web.config, потому что это приведет к выходу из системы всех наших анонимных пользователей, которые, возможно, уже добавили товары в свою корзину и т. д. Но мы также хочу поддерживать масштабирование.

Итак, вопросы:

  1. Верно ли наше предположение, что машинный ключ является причиной того, что пользователю нужны новые файлы cookie?
  2. Есть ли способ определить текущий ключ машины или ключ по умолчанию, который используется, чтобы мы могли скопировать его на другие серверы с балансировкой нагрузки?
  3. Ошибка 2, есть ли способ установить новый машинный ключ без потери данных нашего анонимного пользователя?

person Jordan    schedule 16.05.2011    source источник


Ответы (1)


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

Если вы используете конфигурацию по умолчанию, для ключа компьютера, скорее всего, установлено значение AutoGenerate. Насколько я знаю, нет простого способа узнать, на что настроен автоматически сгенерированный машинный ключ. Однако, поскольку у вас есть доступ к вашему существующему серверу, вы, вероятно, сможете найти его с помощью небольшого кода отражения, как показано здесь:

http://aspnetresources.com/blog/how_to_read_auto_generated_machinekey

person James H    schedule 16.05.2011
comment
Я просто получаю строку нулей для ключей, используя этот код, даже когда я пробую на своей локальной машине, на которой даже установлен машинный ключ. - person Jordan; 17.05.2011