У меня есть сайт, который использует FormsAuthentication, и да, имя cookie .ASPAUX:)
Я могу войти в систему отлично.Сервер создает билет для проверки подлинности с помощью форм, упаковывает его в файл cookie, правильно определяет срок действия (на 1 год вперед) и отправляет его клиенту.
По какой-то причине, через некоторое время, даже если файл cookie являетсятам еще (я вижу это с FireCookies) HttpContext.Current.Request.IsAuthenticated становится ложным на сервере.Как будто cookie не может быть проверен.
Проблема в том, почему это случилось?Как я могу отладить, почему cookie внезапно становится недействительным без истечения срока действия?
РЕДАКТИРОВАТЬ
Вот метод входа:
public static bool Login(int id)
{
try
{
string securityToken = UserHelper.AuthenticateUser(id);
DateTime expiryDate = DateTime.Now.AddYears(1);
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(
1, id.ToString(), DateTime.Now, expiryDate, true,
securityToken, FormsAuthentication.FormsCookiePath);
string encryptedTicket = FormsAuthentication.Encrypt(ticket);
HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket);
cookie.Expires = expiryDate;
HttpContext.Current.Response.Cookies.Add(cookie);
return true;
}
catch
{
return false;
}
}
И Интернет.конфиг:
<authentication mode="Forms">
<forms loginUrl="~/Login.aspx" timeout="2880" slidingExpiration="true"/>
</authentication>