Вопрос

Я использую этот код на странице входа.Это нормально работает.

FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(
               1, // Ticket version
               eUserName.Text,
               DateTime.Now, 
               DateTime.Now.AddMinutes(30),
               true,
               "administrator",
               FormsAuthentication.FormsCookiePath);


        string hash = FormsAuthentication.Encrypt(ticket);
        HttpCookie cookie = new HttpCookie(
           FormsAuthentication.FormsCookieName,
           hash);

        // Set the cookie's expiration time to the tickets expiration time
        if (ticket.IsPersistent) cookie.Expires = ticket.Expiration;

        // Add the cookie to the list for outgoing response
        Response.Cookies.Add(cookie);
        Response.Redirect("Default.aspx");

Но когда я выхожу из системы с помощью элемента управления FormsAuthentication.SignOut или asp:LoginStatus, это не выход из системы.кажется, это вход в систему.Когда я тестировал Internet Explorer 8, произошел успешный выход из системы.

Что происходит в фаерфоксе?Как я могу решить эту проблему?

Спасибо

Эбаттулга

Это было полезно?

Решение

Проблема с FireFox и FormsAuthentication заключается в том, что FireFox, похоже, не удаляет файл cookie аутентификации при SignOut.3 вещи, которые вы можете попробовать:

1) После вызова метода SignOut очистите куки вот так => Response.cookies.clear()
2) Попробуйте позвонить Session.abandon перед вашим вызовом SignOut
3) Вы также можете попробовать следующее: Response.Expires = 0, Response.Cache.SetNoStore(), Response.AppendHeader("Pragma", "no-cache")

Надеюсь, они помогут!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top