Odpowiedz

9

Formularze (FormsAuthention) służą do uwierzytelniania, a po przekroczeniu czasu wylogują użytkownika. Możesz "zapobiec" przekroczeniu limitu czasu, ustawiając właściwość SlidingExpiration na wartość "true", a w razie potrzeby odnowi formularz biletu na aktywność użytkownika (żądanie odczytu do asp). Dzięki temu użytkownik będzie zalogowany, gdy będzie "aktywny" w Twojej witrynie.

Membership służy do weryfikacji użytkownika i userIsOnlineTimeWindow jest tam, aby pomóc śledzić aktywność użytkownika tak, gdy skończy się to ustawić IsOnline właściwość „false” dla tego użytkownika. Jedną z nowych rzeczy dowiedziałem się, że będzie to również odnowić bilet formularzy podczas gdy użytkownicy isOnline jest ustawiony, główną różnicą jest to, że nie ma odnowić sama automatycznie, ale tylko wtedy, gdy jego getUser() lub ValidateUser () Uruchomione są metody.

Kiedy sesja razy na stracisz dane znalezione w Session obiektu. To wszystko.

+0

Czy jesteś pewien, że to wszystko? –

+3

@AranMulholland Kolekcjoner garabage wyczyści pamięć iw pewnym momencie jakiś mężczyzna w Chinach będzie kichał. – Bizniztime

+0

i to wszystko? Zbyt śmieszne :) –

0

Uwaga następujące zachowanie:

ustawić sesji timeout = 10 minut i Forms Authentication timeout = 8 minut.

Użytkownik loguje się do witryny za pomocą uwierzytelniania za pomocą formularzy.

Zarówno "zegar" sesji, jak i "zegar" uwierzytelniania formularzy zaczynają działać.

Załóżmy, że przechowujesz pewne informacje potrzebne do działania witryny w sesji (na przykład Session ["userData"] = userData;).

Użytkownik jest bezczynny przez 9 minut.

Po 8 minutach limit czasu sesji i dane użytkownika zostaną usunięte.

Po 9 minutach, gdy użytkownik próbuje wykonać jakąś czynność w witrynie, naiwnie odwołuje się do Sesji ["userData"], aby uzyskać jego informacje. Ponieważ jest zerowa, otrzyma błąd 500 dla zerowego odniesienia.

Wniosek: Zachowaj limit czasu uwierzytelniania formularzy krótszy niż limit czasu sesji.