连接器和 API 手册  / 第 4 章 MySQL 连接器/NET 开发人员指南  / 4.6 连接器/NET 教程  / 4.6.2 ASP.NET 提供者模型和教程  /  4.6.2.2 教程:连接器/NET ASP.NET 配置文件提供程序

4.6.2.2 教程:连接器/NET ASP.NET 配置文件提供程序

本教程向您展示如何使用 MySQL Profile Provider 将用户配置文件信息存储在 MySQL 数据库中。本教程使用 MySQL Connector/NET 6.9.9、MySQL Server 5.7.21 和 Microsoft Visual Studio 2017 专业版。

许多现代网站允许用户创建个人资料。这需要大量代码,但 ASP.NET 通过在其 Profile 类中包含该功能而减少了这一数量。Profile Provider 提供了这些类和数据源之间的抽象。MySQL Profile Provider 使配置文件数据能够存储在 MySQL 数据库中。这使得配置文件属性能够写入持久存储,并在需要时检索。Profile Provider 还可以有效地管理配置文件数据,例如,它可以删除自特定日期以来未访问过的配置文件。

以下步骤向您展示了如何选择 MySQL 配置文件提供程序:

  1. 创建一个新的 ASP.NET Web 项目。

  2. 选择 MySQL 应用程序配置工具。

  3. 在 MySQL Application Configuration 工具中,通过该工具导航到 Profiles 页面(请参阅 Profiles Provider)。

  4. 选中使用 MySQL 管理我的配置文件 复选框。

  5. 选中自动生成架构复选框。

  6. 单击编辑,然后为将用于存储用户配置文件信息的数据库配置连接字符串。

  7. 导航到该工具的最后一页,然后单击 完成以保存您的更改并退出该工具。

此时您已准备好开始使用 MySQL Profile Provider。通过以下步骤,您可以对安装进行初步测试。

  1. 打开你的web.config文件。

  2. 添加一个简单的配置文件,例如以下示例。

    <system.web>
      <anonymousIdentification enabled="true"/>
      <profile defaultProvider="MySQLProfileProvider">
        ...
        <properties>
          <add name="Name" allowAnonymous="true"/>
          <add name="Age" allowAnonymous="true" type="System.UInt16"/>
          <group name="UI">
            <add name="Color" allowAnonymous="true" defaultValue="Blue"/>
            <add name="Style" allowAnonymous="true" defaultValue="Plain"/>
          </group>
        </properties>
      </profile>
      ...

    设置anonymousIdentification为 true 允许未经身份验证的用户使用配置文件。它们由 cookie 中的 GUID 而不是用户名来标识。

现在已经在 中定义了简单配置文件 web.config,下一步是编写一些代码来测试配置文件。

  1. 在设计视图中,设计一个带有添加控件的简单页面。下图显示了 打开的带有各种文本框、列表和按钮控件 的Default.aspx选项卡。

    图 4.2 简单配置文件应用程序

    内容在周围的文字中描述。

    这些将允许用户输入一些个人资料信息。用户还可以使用这些按钮来保存他们的个人资料、清除页面和恢复他们的个人资料数据。

  2. 在代码视图中添加以下代码片段。

    ...
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            TextBox1.Text = Profile.Name;
            TextBox2.Text = Profile.Age.ToString();
            Label1.Text = Profile.UI.Color;
        }
    }
      
    // Store Profile
    protected void Button1_Click(object sender, EventArgs e)
    {
        Profile.Name = TextBox1.Text;
        Profile.Age = UInt16.Parse(TextBox2.Text);
    }
      
    // Clear Form
    protected void Button2_Click(object sender, EventArgs e)
    {
        TextBox1.Text = "";
        TextBox2.Text = "";
        Label1.Text = "";
    }
    
    // Retrieve Profile
    protected void Button3_Click(object sender, EventArgs e)
    {
        TextBox1.Text = Profile.Name;
        TextBox2.Text = Profile.Age.ToString();
        Label1.Text = Profile.UI.Color;
    }
    
    protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
    {
        Profile.UI.Color = DropDownList1.SelectedValue;
    }
    ...
  3. 保存所有文件并构建解决方案以检查没有引入任何错误。

  4. 运行应用程序。

  5. 输入您的姓名、年龄,然后从列表中选择一种颜色。现在通过单击 商店配置文件将此信息存储在您的配置文件中。

    不从列表中选择颜色会使用 文件中指定 的默认颜色Blueweb.config

  6. 单击清除表单以清除文本框和显示所选颜色的标签中的文本。

  7. 现在单击检索配置文件以从 MySQL 数据库中恢复您的配置文件数据。

  8. 现在退出浏览器以终止应用程序。

  9. 再次运行该应用程序,这也会从 MySQL 数据库中恢复您的配置文件信息。

在本教程中,您了解了如何将 MySQL Profile Provider 与 Connector/NET 结合使用。