Не можем ли мы просто сохранить в сеансе, если пользователь вошел в систему или нет, и избавиться от .ASPXAUTH?
ASP.NET_SessionId против .ASPXAUTH, зачем нам обоим?
Ответ 1
ASP.Net_SessionId
- это файл cookie, который используется для идентификации пользователей
Затем в следующем действии первое имя может быть получено из сеанса:
var firstName = Session["FirstName"];
FormsAuthentication.SetAuthCookie(username, false);
Ответ 2
.NET выдает совершенно другой файл cookie с именем ASP.NET_SessionId для отслеживания состояния сеанса.
Файл cookie ASPXAUTH используется для определения подлинности пользователя.
Таким образом, это две разные концепции, то есть управление состоянием сеанса и управление аутентификацией с использованием проверки подлинности с помощью формы.
Если вы используете Session для аутентификации и забываете аутентификацию формы, вы избавитесь от .ASPXAUTH
Ответ 3
Оба требуются, используя либо следующую уязвимость:
* ASP.NET_SessionId Alone: Фиксация сеанса
* Forms Authentication Cookie Alone: Cant Завершает аутентификацию на сервере
Кроме того, вам необходимо убедиться, что они связаны вместе правильно. В противном случае конфигурация также создает риск:
* Loosely Coupled ASP.NET_SessionID и файлы cookie для проверки подлинности форм: все еще уязвимы
исх: http://blog.securityps.com/2013/06/session-fixation-forms-authentication.html
Ответ 4
Состояние сеанса и аутентификация не имеют ничего общего друг с другом. Вы можете использовать один без другого.