Во время работы с аутентификацией форм ASP.Net я наткнулся на файл cookie .ASPXAUTH. У меня есть пара вопросов:
- Какова цель этого файла cookie?
- Где находится этот файл cookie?
Во время работы с аутентификацией форм ASP.Net я наткнулся на файл cookie .ASPXAUTH. У меня есть пара вопросов:
Файл 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
имеет эти поля:
Утверждение «ASPXAUTH в основном используется для поддержания состояния сеанса ASP.NET» неверно. ASP.NET выдает совершенно другой файл cookie с именем ASP.NET_SessionId для отслеживания состояния сеанса.
Application_PostAuthenticateRequest
Request.IsAuthenticated истинно, но .ASPXAUTH не имеет значения в моем HttpContext.Current.Request.Cookies. Я использую sessionState.
- person Kiquenet; 17.05.2016
На самом деле файл cookie .ASPXAUTH неточно сообщает вам, когда пользователь действительно аутентифицирован. Когда пользователь выходит из приложения, файл cookie .ASPXAUTH удаляется из браузера. Однако, если вы вернетесь на сайт в течение короткого периода времени (с тайм-аутом формы auth cookie) и отредактируете новый файл cookie ASP.NET_SessionId следующим образом:
После обновления вы сможете принять личность аутентифицированного пользователя без повторной технической повторной аутентификации. (опять же при условии, что вы делаете это в течение определенного времени ожидания, хранящегося в зашифрованной строке аутентификации .ASPXAUTH)
Хорошая запись в блоге более подробно объясняет проблему. Возможное решение - связать .ASPXAUTH с сеансом ASP.
Если взаимодействие пользователя с URL-адресом входа в HTML позволило серверу TSWPP установить личность пользователя, удаленному серверу СЛЕДУЕТ создать файл cookie, который идентифицирует пользователя и разрешает аутентификацию на сервере. Содержимое файла cookie ДОЛЖНО быть подписано и зашифровано. Конкретная реализация этого файла cookie, включая алгоритмы подписи и шифрования, зависит от реализации сервера TSWPP, поскольку для анализа содержимого файла cookie требуется только сервер. Если сервер реализует cookie, то cookie ДОЛЖЕН быть возвращен в полезной нагрузке HTTP с типом содержимого «application / x-msts-webfeed-login».
http://msdn.microsoft.com/en-us/library/ee920427.aspx