Cookie не сохраняется - PullRequest
       47

Cookie не сохраняется

2 голосов
/ 23 февраля 2011

У меня проблема с моими куки. Я аутентифицирую пользователей через LDAP, и пока браузер остается открытым, пользователям не нужно снова заходить в инструмент. Они могут даже закрыть вкладку, что нормально, пока открыт браузер.

Но cookie удаляется в тот момент, когда пользователь закрывает браузер. Я искал в Google много для этого, и я не могу заставить работать ни одно из решений, таких как это или это например.

Вот мои настройки после аутентификации на моей странице входа в систему:

String encryptedTicket = FormsAuthentication.Encrypt(authTicket);

//Create a cookie, and then add the encrypted ticket to the cookie as data.
HttpCookie authCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket);

//Add expiration date to the cookie
authCookie.Expires = DateTime.Now.AddMonths(1);

//Add the cookie to the outgoing cookies collection.
Response.Cookies.Add(authCookie);

//You can redirect now.
FormsAuthentication.RedirectFromLoginPage(txtUsername.Text, false);

Мой Web.Config выглядит так:

<authentication mode="Forms"> <forms loginUrl="Logon.aspx" timeout="43200" name="adAuthCookie" path="/" slidingExpiration="true" /> </authentication>

Что бы я ни делал, для файлов cookie ASP.NET_SessionId и adAuthCookie всегда устанавливается срок действия «Когда я закрываю свой браузер». Я хочу, чтобы мои пользователи никогда не входили в систему, когда закрывали браузер, а просто делали это раз в месяц.

Ответы [ 2 ]

0 голосов
/ 23 февраля 2011

Убедитесь, что браузер не настроен на удаление куки при закрытии. Есть такая параноидальная установка где-то в настройках безопасности (я думаю, что в IE это Advanced -> Security -> Пустые временные папки ...)

Используйте Fiddler или другой инструмент, чтобы убедиться, что вы отправляете куки с правильным сроком действия в браузер. Таким образом вы проверяете, где ошибка на стороне сервера или клиента.

0 голосов
/ 23 февраля 2011

Похоже, вам нужно установить machineKey в вашем web.config. Если один из них не указан ни там, ни в файле machine.config, он будет генерироваться при запуске и сбрасываться при каждом перезапуске веб-сайта, аннулируя шифрование в файле cookie.

элемент machineKey

...