Mam SignalR uruchomiony na mojej aplikacji MVC 4, która korzysta z uwierzytelniania formularzy. Mam czas oczekiwania na cookie z wygaśnięciem po wygaśnięciu do 20 minut.Wyjątek SignalR "Nierozpoznana tożsamość użytkownika Tożsamość użytkownika nie może się zmienić podczas aktywnego połączenia SignalR."
Mam funkcję javascript, która działa na czasomierzu, więc po 20 minutach i 1 sekundzie odświeża stronę, a użytkownik jest przekierowywany na stronę logowania. Ważne jest, że robię to ze względów bezpieczeństwa i działa dobrze.
Mój problem polega na tym, że SignalR rzuca wyjątek InvalidOperation, ponieważ tożsamość użytkownika uległa zmianie. Rozumiem, dlaczego to robi, ale nie jestem pewien, jak tego uniknąć.
Próbowałem wywoływać $ .connection.hub.stop(); przed ponownym załadowaniem strony, ale nie działa. Próbowałem wywoływać to 5 sekund przed wygaśnięciem pliku cookie, ale to tylko ponownie aktywuje sesję.
Wszelkie pomysły będą mile widziane!
Dzięki John
Czy to naprawdę rozwiązało problem? Czy możesz napisać jakiś kod? – WebDever
Dodano próbki kodu Hi. I tak to działa. To jest rozwiązanie javascript, więc nie będzie pasowało do wszystkich scenariuszy. W mojej aplikacji użytkownik nie może się zalogować, chyba że włączony jest javascript. –