У меня есть сайт, который использует Forms Auth.Клиент не хочет, чтобы сеанс сайта вообще истекал для пользователей.В кодовой странице страницы входа используется следующий код:
// user passed validation
FormsAuthentication.Initialize();
// grab the user's roles out of the database
String strRole = AssignRoles(UserName.Text);
// creates forms auth ticket with expiration date of 100 years from now and make it persistent
FormsAuthenticationTicket fat = new FormsAuthenticationTicket(1,
UserName.Text, DateTime.Now,
DateTime.Now.AddYears(100), true, strRole,
FormsAuthentication.FormsCookiePath);
// create a cookie and throw the ticket in there, set expiration date to 100 years from now
HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName,
FormsAuthentication.Encrypt(fat)) { Expires = DateTime.Now.AddYears(100) };
// add the cookie to the response queue
Response.Cookies.Add(cookie);
Response.Redirect(FormsAuthentication.GetRedirectUrl(UserName.Text, false));
Раздел аутентификации файла web.config выглядит следующим образом:
<authentication mode="Forms">
<forms name="APLOnlineCompliance" loginUrl="~/Login.aspx" defaultUrl="~/Course/CourseViewer.aspx" />
</authentication>
Когда я захожу на сайт, я делаю см. файл cookie, который правильно отправляется в браузер и возвращается обратно:
Выход HttpFox http://cid -e79f8e4b07c3e30f.office.live.com / embedphoto.aspx / Public / SessionProblem.png
Однако, когда я ухожу на 20 минут или около того, возвращаюсь и пытаюсь что-то сделать на сайте, окно входа снова появляется.Это решение какое-то время работало на наших серверах - теперь оно вернулось.Проблема не возникает на моем локальном компьютере разработчика под управлением Cassini в VS2008.
Есть идеи, как это исправить?