Почему куки не были удалены, а пользователь все еще вошел в систему - PullRequest
0 голосов
/ 29 августа 2011

У меня есть функция входа в MVC3.

private bool UserControll(string name, string password, string token = null)
{
    User user;
user = userRepos.LogOn(name, password, Request.ServerVariables["REMOTE_ADDR"]);
if (user.IsAuthenticated)
{
        FormsAuthenticationTicket authTicket;
        authTicket = new FormsAuthenticationTicket(1, user.SessionId, DateTime.Now, DateTime.Now.AddMinutes(1), false, "");

        string cookieContents = FormsAuthentication.Encrypt(authTicket);
        var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, cookieContents)
             {
                 Expires = authTicket.Expiration,
                 Path = FormsAuthentication.FormsCookiePath,
             };

        HttpContext.Response.Cookies.Add(cookie);
}

Я не могу понять, почему куки не удаляются через 1 минуту (только для тестирования, посмотрите на DateTime.Now.AddMinutes (1)).Когда я проверяю куки в FireFox в начале сеанса, он показывает: Истекает: 29.08.2011 12:07 (текущее время + одна минута).Через одну минуту он показывает: Истекает: в конце сеанса.Сессия не удалена, пользователь не вышел из системы.

Я не могу понять, почему файл cookie не был удален и пользователь не вышел из системы.

Ответы [ 2 ]

2 голосов
/ 29 августа 2011

Вы не упомянули время истечения срока действия Cookie.Также вы можете использовать Session.Clear(); для очистки всех сессий.

Создать страницу выхода из системы, в которой используется функция Session.Clear(); на странице On_Load ().Это приводит к очистке всего сеанса, созданного на вашей странице.

1 голос
/ 07 января 2013

После того, как вы достигли истечения срока действия куки, вы делали запрос на сайт, прежде чем проверять, был ли куки удален? Потому что cookie не удаляется, пока вы не сделаете запрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...