Я хочу, чтобы в моем приложении была функциональность, позволяющая пользователям отмечать, что они хотят оставаться в журнале бесконечно (произвольно устанавливая срок действия cookie на 3 месяца от СЕЙЧАС).
Код, который у меня есть для решения этой проблемы:
private static HttpCookie GetFormsAuthenticationCookie(string userNameResponse,
bool persistCookie)
{
var cookie = FormsAuthentication.GetAuthCookie(userNameResponse, persistCookie);
if (persistCookie)
cookie.Expires = DateTime.Now.AddMonths(3);
return cookie;
}
private void LoginUser(string userNameResponse, bool PersistCookie)
{
Response.Cookies.Add(GetFormsAuthenticationCookie(userNameResponse, PersistCookie));
string navigateAfterUrl = FormsAuthentication.GetRedirectUrl(userNameResponse,
PersistCookie);
Response.Redirect(navigateAfterUrl);
}
Однако в какой-то момент позже, когда я вернусь на сайт, мне нужно снова войти в систему. Я подтвердил, что файл cookie возвращается с моей датой истечения срока действия и что он не установлен как файл cookie сеанса (также проверен с закрытием / повторным открытием браузера, и файл cookie все еще существует). Одна моя мысль, что это как-то связано с тем, когда ASP.NET истекает сеанс.
В моем файле web.config есть специальная настройка ключа компьютера, поэтому не должны ли работать те же файлы cookie, если IIS перезапускается и т. Д.? Есть ли у кого-нибудь какие-либо предположения о том, что может быть причиной этого или, по крайней мере, о том, как отследить это дальше, поскольку я не могу придумать, что еще делать.