Создает ли FormsAuthentication.SetAuthCookie() файл cookie на основе сеанса?
Хорошо. Я довольно смущен, делает ли FormsAuthentication.SetAuthCookie() в asp.net создание cookie на основе сеанса или нет? Из того, что я собираюсь положить что-то в сеанс, вы сделаете что-то подобное в коде:
Session["userAge"] = 25;
Теперь, независимо от того, создан ли файл cookie, он будет работать как его серверная часть, поэтому я смущен, когда читаю, вы можете иметь сеансовые и сеансовые файлы cookie, если да, то каким образом вы создаете каждый из них и как вы будете получать доступ переменные esssion в файле cookie в .net?
Ответы
Ответ 1
Это обычная путаница. Session и FormsAuthentication - это две отдельные концепции: у них есть независимые тайм-ауты и независимые файлы cookie (или нет файлов cookie, если вы используете Cookieless-сессии).
Сессия на сервере идентифицируется уникальным файлом cookie, который создается даже для анонимных пользователей. Этот файл cookie содержит SessionID, который не имеет ничего общего с FormsAuthentication.
Файл cookie FormsAuthentication содержит ряд вещей, наиболее важным из которых является билет аутентификации. Этот билет является зашифрованным битом информации, которая идентифицирует пользователя от введенных учетных данных. Существует большая пошаговая блок-схема и объяснение того, что в билете в этой статье MSDN.
Ответ 2
Я не уверен, что именно вы спрашиваете, но если ваш вопрос заключается в том, как вы можете получить доступ к Session["userAge"]
без файла cookie, так как это отдельный объект из сеанса.
Файл cookie auth (имя по умолчанию .ASPXAUTH
) создается до начала сеанса, поэтому он не может быть основан на сеансе.