FormsAuthentication.SignOut не работает на Firefox 3 (asp.net) - PullRequest
0 голосов
/ 03 августа 2009

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

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? Как я могу решить эту проблему?

Спасибо

ebattulga

1 Ответ

3 голосов
/ 03 августа 2009

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

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

Надеюсь, что это поможет!

...