2016-02-12 4 views
8

У меня возникла проблема с флажком «помнить меня» в проекте MVC6. У меня был related question here, который решил проблему для отладки моего локального хоста, однако после развертывания проекта в нашей среде dev он все равно заставляет меня повторно войти через 20 минут.ASP.Net 5 Identity Persisted Authentication Not Working IIS 7.5 Idle Timer

20-минутный промежуток времени заставлял меня думать, что что-то было неправильно сконфигурировано с помощью IIS. Я установил, что мой пул приложений (настроенный как «без управляемого кода») таймер простоя простаивает через 1 минуту. Конечно, через 1 минуту мне снова нужно снова войти в систему.

Это заставляет меня полагать, что мой сохраненный cookie-аутентификатор больше не принимается как действительный после повторного использования пула приложений (хотя мой cookie настроен так, что срок его действия не истекает до 10 дней, а SecurityStampValidationInterval установлен на 10 дней и 1 минуту .

Я видел нечто подобное в более ранних версиях .NET, связанных с ключом обрабатать Web.config, но MVC6 не имеет system.web сечение в web.config для меня, чтобы положить ключ машины.

Мой проект .NET. DNX нацелен на полную платформу .NET, а не на .NET Core.

ответ

6

Как вы настроили защиту данных? С IIS и DNX мы не знаем, где хранить ключи в постоянном режиме, если вы не загружаете профиль, который не является значением по умолчанию. Поэтому, как только ваше приложение завершает все ключи, используемые для подписывания файлов cookie аутентификации, отбрасывается. Это не происходит в IIS Express, поскольку IIS Express загружает профили.

У вас есть пара вариантов здесь. Вы можете либо запустить provisioning script на сервере IIS, чтобы создать некоторые записи реестра, которые может использовать ASP.NET, или вы можете использовать configure data protection to use the file system, что и было бы, если бы вы хотели запустить несколько хостов.

+0

Я вижу. Я изучал защиту данных, но мне не удалось выяснить, что нужно, чтобы настроить файловую систему или реестр на использование сохраненных ключей. Спасибо за вашу помощь! Я знаю .Net 5 по-прежнему относительно нова, поэтому мы все учимся :) – mituw16

+0

Если у вас есть предложения о том, как мы можем улучшить это в документах или шаблонах, пожалуйста, дайте мне знать. – blowdart

+0

Документы великолепны! Я сработал, потому что я не сделал соединение 2 + 2 = 4, которое мне нужно было сохранить в файловой системе (или в реестре), чтобы позволить Identity иметь сохраненные ключи. На самом деле ответ был прямо там, я просто этого не видел. Я так долго работал над этой проблемой, я пропустил простой ответ :) – mituw16

1

EDIT

См. Ответ @ blowdart для лучшего решения.


Для тех, кто сталкивается с такой же вопрос у меня был, то «исправить», что я реализовал для этого, чтобы установить таймер ожидания в IIS 0, что означает никогда тайм-аут.

Я все еще пытаюсь найти реальное решение, так как некоторые среды размещения могут не устанавливать таймер простоя равным 0 (обычно это общий хостинг и т. Д.).

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

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