Создает ли FormsAuthentication.SetAuthCookie () cookie на основе сеанса? - PullRequest
10 голосов
/ 26 августа 2009

Хорошо, я довольно запутался, FormsAuthentication.SetAuthCookie () в asp.net создает cookie на основе сеанса или нет? Из того, что я собираю, чтобы поместить что-то в сессию, вы сделаете что-то подобное в коде:

Session["userAge"] = 25;

Теперь, независимо от того, создан ли файл cookie, он будет работать на стороне сервера, поэтому я не совсем понимаю, когда я читаю, что у вас могут быть сеансовые и бессессионные куки, если да, то как вы создаете каждый из них и как вы будете получать к нему доступ? переменные в файле cookie в .net?

Ответы [ 2 ]

21 голосов
/ 26 августа 2009

Это распространенная путаница. Сеанс и проверка подлинности с помощью форм - это две разные концепции: у них есть независимые тайм-ауты и независимые файлы cookie (или нет файлов cookie, если вы используете сеансы без файлов cookie).

Сеанс на сервере идентифицируется уникальным файлом cookie, который создается даже для анонимных пользователей. Этот файл cookie содержит идентификатор SessionID, который не имеет ничего общего с FormsAuthentication.

Файл cookie FormsAuthentication содержит несколько вещей, наиболее важной из которых является билет проверки подлинности. Этот билет является зашифрованным битом информации, который идентифицирует пользователя по предоставленным учетным данным. В этой статье MSDN .

есть отличная пошаговая блок-схема и объяснение того, что находится в билете .
2 голосов
/ 26 августа 2009

Я не уверен, что именно вы спрашиваете, но если ваш вопрос заключается в том, как вы можете получить доступ к Session["userAge"] без файла cookie аутентификации, ответ будет потому, что это отдельный объект от сеанса.

Файл cookie аутентификации (имя по умолчанию .ASPXAUTH) создается еще до начала сеанса, поэтому он не может быть основан на сеансе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...