У меня есть приложение asp.net, которое, похоже, забывает, что пользователь зашел через некоторое время.Что может заставить приложение asp.net забыть пользователя?
Я использую поставщик членства, и когда вы выбираете «запомнить» журнал, он запоминает его во время сеанса. Я даже могу закрыть браузер, перезагрузить и вернуться, и он все равно будет зарегистрирован. Но через некоторое время он забывает и, похоже, делает это в любое старое время. Я когда-то вошел в систему, и когда я перешел на новую страницу, он вышел из системы.
Другие странные вещи:
- На моей машине развития он помнит бревно навсегда. Даже после перезапуска и перекомпиляции IIS он запомнит мой логин, как и ожидалось.
- У меня есть другое приложение на том же сервере, которое действительно запомнит логин. Я сравнивал, как они обрабатывают логин, и они кажутся одинаковыми.
Это приводит меня к мысли, что проблема имеет какое-то отношение к серверу или, возможно, что-то в приложении, прямо не связанное с кодом входа и членства. На что я могу смотреть?
Редактировать: Посмотрел файл cookie с помощью Fiddler, и, похоже, все в порядке. аутентификации печенье создан сегодня истекает через 2 недели с этого момента, который, как мой конфиг настроен: истекает = Mon, 06-Sep-2010 1:47:51 GMT
Edit: Проблема, кажется, что пул приложений перерабатывается, и cookie проверки подлинности становится недействительным, потому что он больше не может быть прочитан по мере изменения машинного ключа. Решение заключалось в том, чтобы добавить сегмент machineKey в файл web.config и поставить статический ключ машины.
Слишком много текилы? –
Помните, что функция основана на cookie. Поэтому я бы поставил диагноз жизненного цикла печенья. –
Я взглянул на файл cookie, и его срок действия - 2 недели в будущем. – dtc