Spec-Zone .ru
спецификации, руководства, описания, API

22.2.4.3. Учебное руководство: MySQL, Connector/Net ASP.NET Провайдер Состояния сеанса

MySQL, Connector/Net от версии 6.1, включал MySQL Session State Provider. Этот провайдер позволяет Вам сохранить состояние сеанса в базе данных MySQL. Следующее учебное руководство показывает Вам, как подготовиться использовать MySQL Session State Provider, и затем хранить данные сеанса в базу данных MySQL. Это учебное руководство использует Microsoft Visual Studio 2008 Professional Edition, MySQL, Connector/Net 6.1.1 и MySQL Server 5.1. Это учебное руководство также предполагает, что Вы создали пустую базу данных, например test, где Вы будете хранить данные сеанса. Вы могли сделать это использование mysql интерпретатора команд.

  1. В Visual Studio создайте новое ASP.NET веб-сайт. Если Вы не уверены, как сделать это, сошлитесь на учебное руководство Раздел 22.2.4.6, "Учебное руководство: Привязка данных в ASP.NET Используя LINQ на Объектах", который демонстрирует, как сделать это.

  2. Запустите MySQL Website Configuration tool MySQL. Из-за ошибки в 6.1.1, это, возможно, не появляется, если Вы не соединяетесь с сервером в Проводнике Сервера. Если Вы незнакомы с MySQL Website Configuration tool, рассматриваете сначала работу через учебное руководство в Разделе 22.2.3.12, "MySQL Website Configuration Tool".

  3. Переместитесь через мастер к странице Состояния сеанса. Удостоверьтесь MySQL флажка Use, чтобы управлять моим ASP.NET, данные сеанса выбираются.

  4. На той же самой странице сконфигурируйте строку подключения к базе данных, которая будет содержать Ваши данные сеанса. Если эта база данных будет пуста, то MySQL, Connector/Net, создаст схему, требуемую хранить данные сеанса.

  5. Гарантируйте, что флажок Autogenerate Schema выбирается так, чтобы MySQL, Connector/Net, создал схему в Вашей базе данных, чтобы хранить данные сеанса правильно.

  6. Введите имя своего приложения.

  7. Щелкните по Finish. MySQL Website Configuration tool теперь обновит Ваше приложение web.config файл с информацией о строке подключения и провайдерах значения по умолчанию, которые будут использоваться. В этом случае мы выбрали MySQL Session State Provider.

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

  1. Открытый Default.aspx.cs. В Page_Load метод, добавляет следующий код:

    Session["SessionVariable1"] = "Test string";
  2. Создайте свое решение.

  3. Выполните решение (не отлаживая). Когда приложение будет работать, провайдер автоматически сгенерирует таблицы, требуемые в базе данных, которую Вы выбрали, устанавливая приложение.

  4. Проверьте, что схема фактически создавалась. Используя MySQL Command-Line Client используют целевую базу данных и затем вводят SHOW TABLES;. Вы будете видеть, что MySQL, Connector/Net, создал необходимую схему автоматически, когда мы выбрали это, чтобы произойти в MySQL Website Configuration tool.

  5. Теперь просмотрите содержание этих таблиц, вводя SELECT * FROM my_aspnet_sessions; в mysql интерпретаторе команд. Это выведет на экран данные сеанса наше используемое приложение. Отметьте, что это сохранено в двоичном формате, таким образом, некоторые данные, возможно, не выводят на экран как ожидалось.

В этой точке Вы установили Провайдера Состояния сеанса и выполнили предварительный тест установки. Вы будете теперь работать немного больше с Провайдером Состояния сеанса.

В этой части учебного руководства Вы установите и получите переменную сеанса. Можно работать со своим существующим проектом.

  1. Выберите Default.aspx и переключитесь на Режим конструктора. Добавьте текстовое поле и три кнопки. Измените текстовое свойство для кнопок, чтобы "Сохранить Переменную Сеанса", "Четкое Текстовое поле", и "Выставочная Переменная Сеанса". Они будут Button1, Button2 и Button3 соответственно. Создайте свое решение гарантировать, что никакие ошибки не были представлены.

  2. Все еще в Режиме конструктора, двойном щелчке Button1. Теперь к Button1_Click обработчик событий добавляет код некоторые, которые обработчик напоминает следующее:

    protected void Button1_Click(object sender, EventArgs e){    Session["SessionString"] = TextBox1.Text;}

    Вы создали использование переменной нового Сеанса, к которому получают доступ, ключа "SessionString". Это будет установлено в текст, который вводился в текстовое поле когда Button1 щелкается.

  3. В Режиме конструктора, двойном щелчке Button2 добавить его обработчик событий щелчка. Эта кнопка нуждается к открытому тексту от текстового поля. Код, чтобы сделать это следующие:

    protected void Button2_Click(object sender, EventArgs e){    TextBox1.Text = "";}

    Код просто присваивает пустую строку Text свойство текстового поля.

  4. В двойном щелчке Режима конструктора Button3 и измените обработчик щелчка следующим образом:

    protected void Button3_Click(object sender, EventArgs e){    TextBox1.Text = (String)Session["SessionString"];}

    Это получит строку сеанса и выведет на экран ее в текстовом поле.

  5. Теперь измените Page_Load метод следующим образом:

    protected void Page_Load(object sender, EventArgs e){    if (!IsPostBack)    {       TextBox1.Text = "Enter some text";     }}

    Это гарантирует это, когда страница загружает текстовое поле Text свойство сбрасывается.

  6. Гарантируйте, что решение сохраняется, и затем восстановите решение.

  7. Выполните решение без отладки.

  8. Форма будет выведена на экран. Введите некоторый текст в текстовое поле. Теперь щелкните по Store Session Variable. В этой точке Вы сохранили строку в переменной сеанса.

  9. Теперь щелкните по Clear Text, чтобы очистить текстовое поле.

  10. Теперь щелкните по Show Session Variable, чтобы получить и вывести на экран переменную сеанса.

  11. Обновите страницу, чтобы уничтожить форму и вывести на экран новую форму.

  12. Щелкните по Show Session Variable, текстовое поле выведет на экран сохраненную переменную сеанса, демонстрируя, что обновление страницы не уничтожает переменную сеанса.

Это иллюстрирует, что данные состояния сеанса не уничтожаются, когда страница перезагружается.