asp.net «Запомнить меня» больше не работает с аутентификацией форм - PullRequest
8 голосов
/ 18 января 2011

У меня есть два веб-сайта с самостоятельно написанными поставщиками членства, которые размещены на одном и том же сервере в одном и том же Интернете в разных веб-приложениях и разных пулах приложений.

Раньше у меня была проблема, что я не мог войти на обоих сайтах вместе.* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * [100] * * * * * * * * * * * * * * * * * НЕОБХОДИМ, * * * * * * * * * * * * * * * * *.логин-контроль перестал работать.Пользователь выходит из системы по истечении обычного времени ожидания сеанса.

Атрибуты аутентификации в файле web.config выглядят следующим образом:

<authentication mode="Forms" >
  <forms loginUrl="~/UserMgmt/Login.aspx" timeout="400000" slidingExpiration="true" name="NameOfTheSite"/>
</authentication>

Также я установил имя файла cookie дляформирует аутентификацию под разными именами.

Есть ли что-то еще, что я должен добавить, чтобы работала функция запомнить меня?

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

Обновление 1
Спасибо Джейсону Кили за решение этой проблемы.Я бы никогда не нашел его.Тем временем я нашел соответствующую информацию в MSDN.В Как: настроить MachineKey в ASP.NET 2.0 в разделе «Вопросы развертывания веб-фермы» написано:

Если вы хотите изолировать свое приложение от других приложений нана том же сервере поместите <machineKey> в файл Web.config для каждого приложения на каждом сервере в ферме.Убедитесь, что вы используете отдельные значения ключей для каждого приложения, но дублируйте ключи каждого приложения на всех серверах фермы.

Ответы [ 3 ]

9 голосов
/ 29 января 2011

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

Ознакомьтесь с разделом machineKey http://msdn.microsoft.com/en-us/library/ff649308.aspx

Вот то, что сгенерирует раздел machineKey для вас http://www.qualitydata.com/products/aspnet-membership/help/configuration/no-machinekey.aspx

2 голосов
/ 28 января 2011

Попробуйте установить доменное имя, чтобы убедиться, что cookie-файл запоминания установлен правильно во всех случаях

<forms  path="/" domain="nameof.com" ...the rest
0 голосов
/ 29 января 2011

Время ожидания файла cookie также ограничивается IIS и по умолчанию составляет около 20 минут.Чтобы изменить это:

  1. Откройте диспетчер IIS.
  2. Щелкните правой кнопкой мыши свой сайт и выберите свойства.
  3. Выберите вкладку ASP.NET и нажмите Редактировать конфигурацию.
  4. Выберите вкладку Аутентификация.
  5. Выберите «Включить скользящее истечение».
  6. Установите более длительное время ожидания Cookie.Чтобы установить 30 дней, введите 30.00: 00: 00.
  7. Нажмите кнопку ОК и выйдите из диспетчера IIS.

enter image description here

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