Я хочу иметь функциональность в своем приложении, которая позволяет пользователю проверить, что они хотят оставаться в журнале неограниченно (произвольно устанавливая срок действия файла cookie через 3 месяца с момента СЕЙЧАС).Forms Authentication cookie, похоже, перестает работать
код у меня есть для работы с этим
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 перезагружается и т. Д.? Есть ли у кого-нибудь какие-либо предложения о том, что может быть причиной этого или по крайней мере на том, как проследить это дальше, поскольку я не могу думать о чем-то другом.
Так что же такое компромисс, если я установил тайм-аут на 3 * 30 * 24 * 60? То, что пользователь, который не хочет оставаться в системе, никогда не будет простаивать с нашего сайта, пока они не закроют браузер, и файл cookie сеанса не будет удален? –
Даже если пользователь закрывает браузер, если вы настроите постоянный файл cookie (свойство Expires), он не выйдет из системы. Но если вы вызовете метод FormsAuthentication.SignOut', cookie будет признан недействительным. –
Я имел в виду пользователя, который не хочет оставаться в системе, поскольку cookie не настроен на постоянство. –