Під час роботи з автентифікацією ASP.Net Forms я натрапив на файл cookie .ASPXAUTH. У мене є кілька запитань:
- Яке призначення цього файлу cookie?
- У якому місці знаходиться цей файл cookie?
Під час роботи з автентифікацією ASP.Net Forms я натрапив на файл 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.
Фактично файл cookie .ASPXAUTH не точно повідомляє, коли користувач справді автентифікується. Коли користувач виходить із програми, файл cookie .ASPXAUTH видаляється з браузера. Однак, якщо ви повернетесь на сайт протягом короткого проміжку часу (із тимчасовим обмеженням cookie-файлу для автентифікації форми), та відредагуйте нові файли cookie ASP.NET_SessionId такими:
Після оновлення ви зможете припустити особу автентифікованого користувача без повторної технічної повторної автентифікації. (знову припускаючи, що ви робите це протягом зазначеного тайм-ауту, що зберігається в зашифрованому рядку автентифікації .ASPXAUTH)
Хороший допис у блозі пояснює проблему більш докладно. Можливим рішенням є поєднання .ASPXAUTH із сеансом ASP.
Якщо взаємодія користувача з URL-адресою входу в HTML дозволила TSWPPserver встановити ідентифікацію користувача, віддалений сервер ПОВИНЕН сформувати файл cookie, який ідентифікує користувача та дозволяє автентифікацію сервера. Вміст файлу cookie ПОВИНЕН бути підписаним та зашифрованим. Конкретна реалізація цього файлу cookie, включаючи алгоритми підписання та шифрування, залежить від реалізації сервера TSWPP, оскільки для аналізу вмісту файлу cookie потрібен лише сервер. Якщо сервер реалізує файл cookie, тоді файл cookie ПОВИНЕН бути повернутий в корисному навантаженні HTTP із типом вмісту "application / x-msts-webfeed-login".