65.9K
CodeProject 正在变化。 阅读更多。
Home

设置 MySQL 会员资格(使用 Visual Studio 2010)

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.47/5 (13投票s)

2010 年 10 月 11 日

CPOL

2分钟阅读

viewsIcon

72011

使用 .NET Framework 4.0 和 VS 2010 设置 MySQL 会员资格提供程序

引言

本文将帮助您使用 Visual Studio 2010 设置 MySQL 会员资格提供程序。

背景

会员资格提供程序将帮助您自动设置 .NET Framework 附带的登录功能

必备组件

  • MySQL 服务器应安装在本地计算机或您有访问权限的远程计算机上。
  • 我们需要一个数据库,配置完成后将连接到该数据库以测试会员资格提供程序。

以下步骤将帮助您使用 .NET 设置 MySQL 会员资格提供程序

  • 此处 下载并安装完全托管的 MySQL ADO.NET 驱动程序,版本 6.3.4+
  • 在开始安装之前,您可能需要关闭 Visual Studio 开发环境。

    MySqlConnecterSetup.JPG

  • 安装后,您可以确认 MySql 程序集是否存在于C:\WINDOWS\assembly 文件夹中,如下所示

    MySqlAssembly.JPG

  • 在 MySQL 服务器中配置一个数据库,我已在 localhost 上创建了一个名为“Test”的数据库,用户名为“root”,密码为“rootpassword”,我将在连接字符串配置中使用相同的凭据。
  • 将以下代码放入 web.config
    <connectionStrings>
    <remove name="LocalMySqlServer"/>
       <add name="LocalMySqlServer" 
            connectionString="Datasource=localhost;
                              uid=root;
                              Pwd=rootpassword;
                              Database=test;" 
            providerName="MySql.Data.MySqlClient" />
    </connectionStrings>
  • 将以下代码放入会员资格提供程序、配置文件提供程序和角色提供程序。请检查您是否在下面的配置中引用了正确的连接字符串名称。
    <membership defaultProvider="MySqlMembershipProvider">
    <providers>
    <clear />
      <add name="MySqlMembershipProvider" 
           type="MySql.Web.Security.MySQLMembershipProvider, 
                 MySql.Web,Version=6.3.4.0,
                 Culture=neutral,
                 PublicKeyToken=c5687fc88969c44d" 
           connectionStringName="LocalMySqlServer" 
           enablePasswordRetrieval="false" 
           enablePasswordReset="true" 
           requiresQuestionAndAnswer="false" 
           requiresUniqueEmail="true" 
           passwordFormat="Hashed" 
           maxInvalidPasswordAttempts="5" 
           minRequiredPasswordLength="6" 
           minRequiredNonalphanumericCharacters="0" 
           passwordAttemptWindow="10" 
           applicationName="/" 
           autogenerateschema="true" />
    </providers>
    </membership>
    <profile>
    <providers>
    <clear />
      <add type="MySql.Web.Security.MySQLProfileProvider, 
                 MySql.Web,Version=6.3.4.0,
                 Culture=neutral,
                 PublicKeyToken=c5687fc88969c44d" 
           name="MySqlProfileProvider" 
           applicationName="/" 
           connectionStringName="LocalMySqlServer" 
           autogenerateschema="true" />
    </providers>
    </profile>
    <roleManager enabled="true" defaultProvider="MySqlRoleProvider">
    <providers>
    <clear />
      <add connectionStringName="LocalMySqlServer" 
           applicationName="/" 
           name="MySqlRoleProvider" 
           type="MySql.Web.Security.MySQLRoleProvider,
                 MySql.Web,Version=6.3.4.0,
                 Culture=neutral,PublicKeyToken=c5687fc88969c44d" 
           autogenerateschema="true" />
    </providers>
    </roleManager>
  • 从“C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG”打开 machine.config,在连接字符串部分添加以下代码

    <connectionStrings>
    <add name="LocalMySqlServer" 
    connectionString="Datasource=localhost;
                      uid=root;
                      Pwd=rootpassword;
                      Database=test;" />
    </connectionStrings>
  • 在同一个 machine.config 中,检查并修改会员资格、配置文件和角色的提供程序,并检查 connectionStringName 属性是否指向正确的连接字符串名称。不要删除这些提供程序部分中默认存在的任何配置设置,只需在提供程序部分之间添加以下行即可。
    <membership>
    <providers>
      <add name="MySQLMembershipProvider" 
           type="MySql.Web.Security.MySQLMembershipProvider, 
                 MySql.Web, Version=6.3.4.0,
                 Culture=neutral,
                 PublicKeyToken=c5687fc88969c44d" 
           connectionStringName="LocalMySqlServer" 
           enablePasswordRetrieval="false" 
           enablePasswordReset="true" 
           requiresQuestionAndAnswer="true" 
           applicationName="/" 
           requiresUniqueEmail="false" 
           passwordFormat="Clear" 
           maxInvalidPasswordAttempts="5" 
           minRequiredPasswordLength="7" 
           minRequiredNonalphanumericCharacters="1" 
           passwordAttemptWindow="10" 
           passwordStrengthRegularExpression="" 
           autogenerateschema="true"/>
    </providers>
    </membership>
    <profile>
    <providers>
      <add name="MySQLProfileProvider" 
           type="MySql.Web.Profile.MySQLProfileProvider, 
                 MySql.Web, Version=6.3.4.0,
                 Culture=neutral,
                 PublicKeyToken=c5687fc88969c44d" 
           connectionStringName="LocalMySqlServer" 
           applicationName="/" />
    </providers>
    </profile>
    <roleManager>
    <providers>
     <add name="MySQLRoleProvider" 
          type="MySql.Web.Security.MySQLRoleProvider,
                MySql.Web,
                Version=6.3.4.0,
                Culture=neutral,
         PublicKeyToken=c5687fc88969c44d" 
         connectionStringName="LocalMySqlServer" 
         applicationName="/" />
    </providers>
    </roleManager>
  • 转到 Visual Studio,单击项目-> ASP.NET 配置

    AspNetConfig.JPG

  • ASP.NET Web 应用程序管理将在新窗口中打开,单击安全选项卡,您现在可以创建用户、角色和访问规则
  • 您还可以检查与项目配置的 MySQL 数据库,其中包含 *aspnet* 表的列表,这些表是在数据库中自动生成的。

    tables.JPG

© . All rights reserved.