Zajmuję się tworzeniem niewielkiej aplikacji internetowej używanej we wspólnym komputerze.Nie można usunąć pliku cookie służącego do uwierzytelniania ASP.NET po zamknięciu przeglądarki Firefox
Gdy użytkownik zamyka okno przeglądarki, chcę, aby sesja i uwierzytelnienie zostały usunięte.
Na stronie logowania używam coś takiego uwierzytelnienia użytkownika:
FormsAuthenticationTicket authTicket =
new FormsAuthenticationTicket(1,txtUser.Text,
DateTime.Now,
DateTime.Now.AddMinutes(5),
false,"");
string encTicket = FormsAuthentication.Encrypt(authTicket);
HttpCookie faCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encTicket);
HttpContext.Current.Response.Cookies.Add(faCookie);
string redirectUrl = FormsAuthentication.GetRedirectUrl(txtUser.Text, false);
HttpContext.Current.Response.Redirect(redirectUrl);
Jak widać, mam ustawić zmienną „isPersistent” false.
To wydaje się działać w Chrome (nie testowałem na IE), jednak gdy uruchomię aplikację w przeglądarce Firefox z włączonymi wieloma kartami, jeśli zamknę przeglądarkę i ponownie ją otworzę, nadal będę uwierzytelniana, a plik cookie wciąż tam jest!
To naprawdę dziwne, bo ciasteczko powinno zostać usunięte po zamknięciu ... Czy to błąd z Firefoksa, kiedy masz otwarte wiele zakładek? Jak mogę to naprawić?
Pomoc jest doceniana!
góry dzięki
Gdzie mogę umieścić ten kod? Ponieważ chcę go usunąć, gdy użytkownik zamyka okno, i nie znajduję dla niego żadnego programu obsługi. –
@ Tom S.: Zgodnie z twoim pytaniem zmieniłem odpowiedź. Mam nadzieję, że to pomoże. – Tarik
Czy to też nie usunie cookie sesji za każdym razem, gdy klikniesz na link, aby przejść do innej strony w portalu? Zasadniczo zmuszając ich do ponownego logowania się na każdej stronie? Tom chce, żeby tak się stało, jeśli zamkną przeglądarkę, której nie można wykryć. – EdenMachine