Это примерно, как она работает:
Когда пользователь посещает веб-страницы, идентификатор сеанса устанавливается в куки в браузере пользователя. Каждый раз, когда браузер отправляет запрос на сервер, браузер передает cookie, содержащий идентификатор сеанса на сервер. Это позволяет серверу распознавать пользователя и ассоциировать данные с пользователем через несколько запросов страниц (you can use sessions without cookies if you want to).
Сервер будет хранить эти данные в памяти по умолчанию. Однако, если несколько веб-серверов запускают приложение и обслуживают одного и того же пользователя, все они должны знать о данных сеанса пользователя. Таким образом, вы можете настроить приложение для хранения данных сеанса с помощью службы Windows State State Server «ASP.NET», или вы можете хранить данные в базе данных SQL (или вы можете написать собственный поставщик состояния сеанса и хранить данные там, где вам нравится). Более того, хранение данных сеанса в памяти, очевидно, является плохим выбором, если вы беспокоитесь, что ваша машина может упасть (что, очевидно, должно вас беспокоить).
Что касается «правильного и подробного» использования сеансов ASP.NET, то сказать сложно - это зависит от того, чего вы пытаетесь достичь. Если вы можете помочь, вы должны хранить только небольшие объемы данных в сеансах, так как объединенные сеансы всех пользователей, посещающих ваш сайт, могут занимать довольно много места. Более того, если вы используете сервер состояния ASP.NET или состояние сеанса SQL Server, хранящиеся данные должны быть сериализованы и десериализованы, что потребует нетривиального количества времени для данных нетривиального размера.
Если то, что вы планируете хранить, не является конфиденциальным, альтернативным подходом может быть сохранение данных в файле cookie. Таким образом, вашему серверу не придется беспокоиться о сохранении данных вообще. Таким образом, вы торгуете памятью (или дисковым пространством или любым другим механизмом хранения, который вы выбираете) для пропускной способности, поскольку cookie теперь будет частью полезной нагрузки для каждого запроса.
В случае, если это поможет, я подробно отвечу на ваш вопрос в своей книге. См. Мой профиль для информации. – RickNZ
@RickNZ - Я хочу, чтобы вы дали мне базовые проработки и преимущества и недостатки использования сеансов. Если бы я должен был купить книгу, я бы не разместил ее здесь как вопрос. – Murtaza