Zajmuję się tworzeniem aplikacji Asp.net (MVC, ale to nie ma znaczenia). Mam niestandardowy moduł IHttpModule, który odpowiada za PostAuthenticateRequest, aby zmienić tożsamość użytkownika głównego &.Trwałe/buforowanie danych między żądaniami - wspólne podejście
Przechowuję identyfikator użytkownika i nazwę użytkownika w pliku cookie uwierzytelniania, gdy użytkownik się loguje. Mam IUser (zaimplementowany przez warstwę DAO i Business Objects, każdy z własnym dodatkowym członkiem), którego potrzebuję na wszystkich klasach Business Service. Gdy użytkownik czegoś chce, muszę dostarczyć instancję obiektu IUser (zwykle z warstwy Business Objects), więc podanie identyfikatora z biletu auth nie jest wystarczające.
Zastanawiam się więc, w jaki sposób i gdzie najlepiej byłoby przechowywać dane zalogowanego użytkownika IUser?
- Nie chcę, aby pobrać go za każdym razem z DB (na podstawie danych identyfikatora użytkownika Uwierzytelnianie za bilet)
- Nie mogę przechowywać go w sesji, ponieważ mam do pracy wewnątrz PostAuthenticateRequest, gdzie ISN Session” t gotowy jeszcze
- Chcę wszystkie funkcje mają być zamknięte w moim zwyczaju IHttpModule
wyborów, które widzę:
- Cache
- Cookie
- (Session) - przesuwając z PostAuthenticateRequest do wydarzenia PostAcquireRequestState i zmienić główny/tożsamości tam, ale chciałbym, aby tego uniknąć
procesów, które wydają się komplikować to:
- logi-in użytkownika, dane użytkownika są pobierane z DB i utrzymywały się jakoś na później żąda
- użytkownik loguje-out, dane użytkownika, musi zostać usunięty z utrzymywały się średnio automagical ly
- Zmiany Użytkownika własny profil, dane użytkownika musi być odrzucone i ponownie przeczytać na następne żądanie od DB
ja wa nie wszystko, aby być obsługiwane automatycznie przez HttpModule (jeśli to możliwe), aby wyeliminować błędy dewelopera z zapominając zresetować te rzeczy.
Czego również nie chcę, jest zapisanie/odczytanie niektórych zakodowanych zmiennych/kluczy i manipulowanie nimi w innych częściach aplikacji. To byłby tylko dług techniczny.
Pytania
- Co proponujesz?
- W jaki sposób SO zachowuje dane użytkownika między żądaniami?