У меня есть файл cookie FormsAuthentication, который является постоянным и работает независимо в среде разработки, тестирования и производства.У меня есть пользователь, который может аутентифицироваться, объект пользователя создан, cookie-файл аутентификации добавляется в ответ:
'Custom object to grab the TLD from the url
authCookie.Domain = myTicketModule.GetTopLevelDomain(Request.ServerVariables("HTTP_HOST"))
FormsAuthentication.SetAuthCookie(authTicket.Name, False)
Response.SetCookie(authCookie)
Пользователь немного обрабатывается, чтобы проверить первый раз вход в систему, вопросы безопасности,и т. д., а затем перенаправляется со следующим тидбитом:
Session.Add("ForceRedirect", "/FirstTimeLogin.aspx")
Response.Redirect("~/FirstTimeLogin.aspx", True)
С помощью перерыва отладки я могу убедиться, что коллекция cookie содержит как cookie, не относящиеся к аутентификации, которые я установил для другой цели, так и формыauthenticationпеченье.Затем следующий шаг в этом процессе происходит в ApplicationAuthenticateRequest в global.asax:
Sub Application_AuthenticateRequest(ByVal sender As Object, ByVal e As EventArgs)
Dim formsCookieName As String = myConfigurationManager.AppSettings("FormsCookieName")
Dim authCookie As HttpCookie = Request.Cookies(formsCookieName)
На этом этапе для ОДНОГО пользователя authCookie - ничто.У меня есть 15 000 других пользователей, на которых это не влияет.Однако для одного пользователя cookie просто исчезает без следа.Я видел это раньше с исключениями w3wp.exe, исключениями сервера состояний и другими исключениями, связанными с процессом IIS, но я не получаю никаких исключений в журнале событий.w3wp.exe не падает, у сервера состояний есть некоторые тайм-ауты, но они кажутся не связанными (что подтверждается метками времени), и это происходит только с этим одним пользователем в этом одном домене (этот код используется в 2 разных TLD и приблизительно в 10 других поддоменах).
Один путь, который я исследую, - это то, что печенье может быть слишком большим.Я бы подумал, что будет проверка размера куки, входящего в ответ, и я не думаю, что это повлияет на него таким образом.Любые идеи, почему запрос может сбросить куки?
ПРИМЕЧАНИЕ. Вторичный файл cookie, который я упомянул, который я установил, также сбрасывается (и он очень крошечный).
РЕДАКТИРОВАТЬ-ПРИМЕЧАНИЕ: маркер сеанса НЕ теряется, когда это происходит.Однако, поскольку файл cookie аутентификации утерян, он игнорируется и заменяется при последующем входе в систему.