Что такое cookie ASPXAUTH?

Во время работы с аутентификацией ASP.Net Forms я столкнулся с файлом .ASPXAUTH. У меня есть пара вопросов:

  • Какова цель этого файла cookie?
  • Каково местоположение этого файла cookie?

Ответ 1

Файл cookie ASPXAUTH используется для определения подлинности пользователя.

Что касается местоположения файла cookie, это зависит от вашего браузера. Если вы используете Firefox, вы можете просмотреть файл cookie, нажав на Tools → Options → Privacy. Затем прокрутите вниз до домена и разверните его, чтобы просмотреть файл cookie и его значение. Значение зашифровывается с помощью машинного ключа (находится в файле machine.config сервера или файла web.config), поэтому просмотр cookie на клиенте на самом деле не предоставит вам никакой информации. Вы можете расшифровать/просмотреть значение на стороне сервера, используя:

HttpCookie authCookie = Request.Cookies[FormsAuthentication.FormsCookieName];//.ASPXAUTH
FormsAuthenticationTicket authTicket = FormsAuthentication.Decrypt(authCookie.Value);

где authTicket имеет следующие поля:

enter image description here

Утверждение "ASPXAUTH в основном используется для поддержания состояния сеанса ASP.NET" неверно. ASP.NET выдает совершенно другой файл cookie с именем ASP.NET_SessionId для отслеживания состояния сеанса.

Ответ 2

Собственно, cookie.ASPXAUTH не точно сообщает вам, когда пользователь действительно аутентифицирован. Когда пользователь выходит из приложения, файл cookie.ASPXAUTH удаляется из браузера. Однако, если вы вернетесь на сайт в течение короткого периода времени (с тайм-аутом формы auth cookie) и отредактируете новый файл cookie ASP.NET_SessionId со следующим:

  • измените поле "имя" с "ASP.NET_SessionId" на ".ASPXAUTH"
  • измените "значение" с 24 char sessionID на старую строку аутентификации 448 char

После обновления вы сможете принять личность аутентифицированного пользователя без повторной проверки подлинности повторно. (опять же, предположив, что вы делаете это в пределах заданного таймаута, хранящегося в зашифрованной строке аутентификации .ASPXAUTH)

Хорошее сообщение blog объясняет проблему более подробно. Возможное решение - связать .ASPXAUTH с сеансом ASP.

Ответ 3

Если пользователь взаимодействует с URL-адресом входа в HTML, он позволяет TSWPPserver установить идентификатор пользователя, удаленный сервер ДОЛЖЕН сгенерировать куки файл, который идентифицирует пользователя и позволяет аутентификацию на сервере. Содержимое файла cookie ДОЛЖНО быть подписано и зашифровано. Конкретная реализация этого файла cookie, включая алгоритмы подписи и шифрования, зависит от реализации сервера TSWPP, поскольку для анализа содержимого файла cookie требуется только сервер. Если сервер реализует куки файл, cookie ДОЛЖЕН быть возвращен в полезной нагрузке HTTP с типом Content-Type "application/x-msts-webfeed-login".

http://msdn.microsoft.com/en-us/library/ee920427.aspx