2009-12-31 1 views
2

Я новичок в ASP.NET. Я создаю веб-сайт, на котором я должен создать сеанс для каждого пользователя, который заходит на сайт. Теперь я не смог описать, как хранить сеанс в моей базе данных.Не знаю, как хранить идентификатор сеанса в состоянии сеанса sql

Я прочитал несколько книг для них и получил способ настройки состояния сеанса. Но я все еще в том же месте, где я начал. Я не могу получить, где я должен сохранить идентификатор сеанса. Я использую состояние сеанса сервера sql. Я создал базу данных aspnetdb и все таблицы r над их. Но я не знаю, как их использовать. Как сохранить идентификатор сеанса в базе данных. Я полностью смущен, как объяснить свою проблему.

ответ

3

Вам не нужно хранить идентификатор сеанса в базе данных - это часть делается для вас по времени выполнения, предполагая, что вы используете сеансы в режиме SQLServer.

Поставщик сеанса будет считывать данные сеанса из БД в начале каждого запроса и записывать его в конце каждого запроса. Он делает это, установив файл cookie, содержащий идентификатор сеанса, а затем используя значение файла cookie в качестве ключа для поиска в DB, ​​чтобы найти остальные данные сеанса.

Вы всегда можете получить доступ к идентификатору сеанса из свойства Session.SessionID, но вам редко приходится это делать.

Куки-файл Session ID не отправляется клиенту (а также данные сеанса, сохраненные в БД), до момента, когда вы сначала сохраните что-то в объекте Session. Вы можете легко это увидеть с помощью веб-отладчика, такого как Fiddler.

FWIW, обычно логины не должны обрабатываться с использованием состояния сеанса. Например, стандартный поставщик членства ASP.NET использует параллельную систему, основанную на файлах cookie.

4

См HOW TO: Configure SQL Server to Store ASP.NET Session State

В принципе, вы должны настроить его в web.config:

<sessionState 
      mode="SQLServer" 
      sqlConnectionString="data source=127.0.0.1;user id=<username>;password=<strongpassword>" 
      cookieless="false" 
      timeout="20" 
    /> 
+0

thx для справки. Но я тоже это сделал. Но все же я не знаю, как это работает. как мой идентификатор сеанса поддерживается в базе данных. Даже я не знаю, будет ли сеанс пользователей поддерживаться или нет, делая это. Я даже написал машинный ключ в файле веб-конфигурации, но не знаю, как все это работает. Я не могу визуализировать. Plz поможет мне в качестве новичка в этом контексте –