Вопрос

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

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

Решение

Файл cookie ASPXAUTH используется для определения того, прошел ли пользователь аутентификацию.

Что касается местоположения файла cookie, это зависит от вашего браузера.Если вы используете Firefox, вы можете просмотреть файлы cookie, нажав «Инструменты» -> «Параметры» -> «Конфиденциальность».Затем прокрутите вниз до домена и разверните его, чтобы увидеть файл 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 для отслеживания состояния сеанса.

Другие советы

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

  • измените поле «имя» с «ASP.NET_SessionId» на «.ASPXAUTH»
  • измените «значение» с 24-символьного идентификатора сеанса на старую строку аутентификации из 448 символов.

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

Хороший блог пост описывает проблему более подробно.Возможное решение — связать .ASPXAUTH с сеансом ASP.

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top