2016-02-12 20 views
8

Mam problem z polem wyboru "zapamiętaj mnie" w projekcie MVC6. Miałem related question here, który rozwiązał problem związany z debugowaniem na moim hoście lokalnym, jednak po wdrożeniu projektu w naszym środowisku programistycznym nadal zmusza mnie do ponownego zalogowania po 20 minutach.Nie działa ASP.Net 5 Identyfikacja utajniona IIS 7.5 Idle Timer

20-minutowy czas sprawił, że pomyślałem, że coś jest źle skonfigurowane z IIS. Ustawiam pulę aplikacji (skonfigurowaną jako "brak zarządzanego kodu"), aby przestał działać po 1 minucie. Rzeczywiście, po 1 minucie muszę ponownie się zalogować.

To prowadzi mnie do przekonania, że ​​mój utrwalony plik cookie służący do uwierzytelniania nie jest już uznawany za prawidłowy po odtworzeniu puli aplikacji (mimo że mój plik cookie jest skonfigurowany tak, aby nie wygasał do 10 dni, a SecurityStampValidationInterval ustawiono na 10 dni i 1 minutę .

widziałem coś podobnego w poprzednich wersjach .NET związanych z kluczem maszynie web.config, ale MVC6 nie posiada sekcję w pliku web.config system.web mi umieścić klucz maszynowy.

Mój projekt .NET5 DNX dotyczy całego środowiska .NET, a nie .NET Core.

Odpowiedz

6

W jaki sposób skonfigurowałeś ochronę danych? W przypadku usług IIS i DNX nie wiemy, gdzie przechowywać klucze w sposób ciągły, chyba że zostanie załadowany profil, który nie jest domyślny. Tak więc po zakończeniu aplikacji wszystkie klucze używane do podpisywania ciasteczek uwierzytelniających są odrzucane. Nie dzieje się to w IIS Express, ponieważ IIS Express ładuje profile.

Masz kilka opcji tutaj. Można uruchomić serwer provisioning script na serwerze IIS, aby utworzyć niektóre wpisy rejestru, których może używać program ASP.NET, lub można je wykonać w trybie configure data protection to use the file system, co można zrobić, jeśli użytkownik chce uruchomić wiele hostów.

+0

Rozumiem. Szukałem ochrony danych, ale nie byłem w stanie dowiedzieć się z doucmentation, że muszę skonfigurować go, aby korzystać z systemu plików lub rejestru do korzystania z utrwalonych kluczy. Dziękuję za pomoc! Wiem, że .Net 5 jest wciąż stosunkowo nowy, więc wszyscy się uczymy :) – mituw16

+0

Jeśli masz sugestie, w jaki sposób możemy udoskonalić to w dokumentach lub szablonach, daj mi znać. – blowdart

+0

Dokumenty są świetne! Potknąłem się, ponieważ nie utworzyłem połączenia 2 + 2 = 4, które musiałem utrwalić w systemie plików (lub rejestrze), aby umożliwić Tożsamości posiadanie utrwalonych kluczy. W rzeczywistości odpowiedź była właśnie taka, po prostu jej nie widziałem. Pracowałem nad tym problemem od tak dawna, że ​​brakowało mi prostej odpowiedzi :) – mituw16

1

EDYTOWANIE

Zobacz odpowiedź @ blowdart dla lepszego rozwiązania.


Dla każdego, kto napotyka ten sam problem miałem, „Fix”, że realizowane jest to, aby ustawić timer bezczynności w IIS do 0, które nigdy nie oznacza limit czasu.

Wciąż próbuję znaleźć prawdziwe rozwiązanie, ponieważ niektóre środowiska hostingowe mogą nie zezwalać na ustawienie czasu bezczynności na 0 (zazwyczaj dzielony hosting itp.).