Аутентификация ASP-MVC Forms - cookie не сохраняется - PullRequest
1 голос
/ 26 ноября 2008

У меня есть своя собственная база данных linq to sql с хорошим методом входа, который возвращает мне пользователя.

Я следил за 101 примером в Интернете, как добавить cookie в клиент.

            FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(
                1,
                _u.id.ToString(), 
                DateTime.Now, 
                DateTime.Now.AddDays(14), 
                true, 
                "hi", 
                FormsAuthentication.FormsCookiePath);

        string hash = FormsAuthentication.Encrypt(ticket);

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

        if (ticket.IsPersistent) cookie.Expires = ticket.Expiration;

        //Response.Cookies.Add(cookie);

        //FormsAuthentication.RedirectFromLoginPage(_u.name, _remember);
        FormsAuthentication.SetAuthCookie(_u.name, _remember);

И, конечно же, он добавляется. Но когда я проверяю это, его истечение говорит о конце сеанса, а не о двух неделях, как указано. Поэтому, когда пользователь пытается вернуться на сайт после закрытия браузера, он должен войти в систему.

Есть идеи?

Ответы [ 2 ]

3 голосов
/ 26 ноября 2008

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

0 голосов
/ 01 августа 2012

У меня такая же проблема, и я решаю при входе в систему Page_Load
Сначала подтвердите пользователя. Идентичность верна
если true, у нас есть действительный пользователь !!!.
если ложь, удалите старый файл cookie (см. эту ссылку http://forums.asp.net/t/1227365.aspx/1)
эта последняя часть предотвращает неправильное сохранение нового файла cookie.

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