Что такое 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