Mam witrynę ASP.NET 2.0, która przechowuje identyfikator użytkownika w sesji w celu wskazania, że są one zalogowane. W niektórych sytuacjach użytkownik nie wydaje się być zalogowany. byli monitorowania ruchu w Skrzypek, a niektóre szczegóły Znalazłem:Plik cookie sesji ASP.net utracony lub usunięty
- problem jest w 100% powtarzalne na starszym laptopie kopalni, gdy uruchomiony IE7 i laptopa kierownika projektu, gdy uruchomiony IE7. Problem nigdy nie występuje na moim obecnym laptopie z uruchomionym IE7 lub żadnym z tych laptopów podczas uruchamiania FF.
- Problem występuje tylko w produkcji - nie w fazie rozwoju, wewnętrznej inscenizacji ani w ocenie klienta. Produkcja jest jedynym zrównoważonym obciążeniem środowiska, ale powtarzalność opisana powyżej sprawia, że kwestionuję równoważenie obciążenia jako czynnik.
- Gdy strona, która ustawia Sesję ("ID") = 1, wysyła odpowiedź do klienta, widzę we wszystkich przypadkach nagłówek "Set-Cookie", który tworzy plik cookie ASP.Net_Session_Id (i jest to HttpOnly).
- Kolejne zapytania do serwera wyślą ten plik cookie w nagłówku na komputerach, które nie wykazują problemu, ale nie na komputerach, które są, więc albo plik cookie jest usuwany, albo nagłówek "Set-Cookie" jest ignorowany.
- Sposób logowania jest następujący: strona na stronie www.DomainX.com ma element iframe. Źródłem tego elementu iframe jest strona w witrynie login.DomainY.com. Różnorodność stron obsługiwanych przez login.DomainY.com prowadzi użytkownika przez proces logowania/rejestracji. Ostatnim krokiem logowania.DomainY.com jest przekierowanie do strony z powrotem na www.DomainX.com, w tym identyfikator użytkownika w querystring. Ta strona na stronie www.DomainX.com zazwyczaj przechowuje identyfikator w sesji, a następnie uruchamia niektóre JS w celu przekierowania dokumentu najwyższego poziomu do nowej strony, co powoduje usunięcie użytkownika z elementu iframe. Jest to proces, który działał przez kilka lat z kilkoma wartościami domeny DomainX.com. Jedną rzeczą, która może być inna, jest to, że w tym przypadku JS po prostu niszczy element iframe, a niektóre zawierają elementy div.
- Kolejna różnica między scenariuszami, w których występuje problem, a których nie ma w plikach cookie Google Analytics. Istnieje różnica, gdy login.DomainY.com/FinalStep.aspx przekierowuje na stronę www.DomainX.com/SaveTheID.aspx wewnątrz elementu iframe. Gdy problem nie występuje, żądanie SaveTheID.aspx zawiera różne pliki cookie Google Analytics (__utma, __utmz, itp.). Gdy problem wystąpi, to żądanie nie obejmuje wszystkich plików cookie GA (brakuje go __utma, __utmz i __utmb).
- Produkcja to jedyne środowisko, w którym login.DomainY.com działa pod SSL, więc pomyślałem, że to może być powiązane. Ale tymczasowo skonfigurowaliśmy naszą kopię roboczą login.DomainY.com, aby używać protokołu SSL, a to nie miało żadnego efektu.
Jakieś pomysły, które mogą to powodować?
Edytuj: środowisko produkcyjne ma domeny domen: www.DomainX.com i DomainX.com. Istnieje inny znany problem z brakiem ustawienia plików cookie dla obu tych domen. Możliwe, że jest to powiązane, ale nie będę w stanie przetestować, dopóki ta poprawka nie pójdzie do skutku.
Czy spojrzał na ruch sieciowy z Skrzypek - http://www.fiddler2.com/ - to doskonałe narzędzie dla sprawdzanie, jaki ruch jest przesyłany między serwerem a przeglądarką, w tym pliki cookie itp., i czy można go skonfigurować do deszyfrowania ruchu HTTPS? –
Tak, robię to; Skrzypek jest moim głównym źródłem informacji o tym, co wiem w tym momencie. W każdym razie dzięki. – Joel