W mojej aplikacji internetowej asp.net na ładowanie strony przechwytuję bieżący URL strony i zapisuję go w zmiennej sesji, aby śledzić stronę, na której znajduje się użytkownik, aby mogli wrócić do niej, jeśli wejdą obszar administracyjny, nawigacja itp. Mogą następnie kliknąć przycisk powrotu i zostaną przeniesieni na stronę, na której się znajdowali przed wejściem do administratora.Zmienna sesji zmieniona przez Chrome i FF
To wszystko działa w IE8; jednak w FF i Chrome, gdy w administratorze link powrotny przekierowuje do niestandardowej strony 404, którą mam dla aplikacji internetowej.
Dla celów testowych I dodaje kod napisałem poniżej w moim przypadku obciążenia strony:
Response.Write((string)Session["navurl"]);// displays "http://somedomain.com/customerror/default.aspx"
Session["navurl"] = currentUrl;//ex. currentUrl = "http://somedomain.com/contact/"
Response.Write((string)Session["navurl"]);//ex. currentUrl = "http://somedomain.com/contact/"
Ponownie to działa bez problemu w IE, ale w FF i Chrome na stronie załadować zmienna sesji wyświetla 404 łącze do strony i po ustawieniu wyświetla poprawne łącze. Użyłem skrzypka, aby zobaczyć, co się dzieje, a Chrome rzuca 404 w nagłówku GET dla pliku favicon.ico, którego nie używam w tej aplikacji internetowej.
Dodałem plik faviocon i link w nagłówku pliku site.master, a Chrome i FF działają poprawnie; Nadal nie jestem pewien, dlaczego tak się dzieje. Ktoś ma pomysły, dlaczego lub jak moja zmienna sesji jest nadpisywana przez Chrome lub FF?
Jako notatkę boczną przeszedłem przez debugowanie procesu, a currentUrl to właściwy adres URL.
chce favicon pokazać na karcie, ale dlaczego to zatrzymanie po 404 w FF i chrome ... Myślę, że masz inny problem, którego nie identyfikujesz. Czy jest to przestarzały problem z pamięcią podręczną? Oboje ciężko buforują pamięć podręczną. – jcolebrand
Czy przypadkiem używasz uwierzytelniania formularzy lub innego NTLM? Zauważyłem, że czasami zdarzają się zabawne rzeczy w F/Chrome, a nie w IE – DarylChymko