【问题标题】:asp .net 4.0 membership and mysqlasp .net 4.0 成员资格和 mysql
【发布时间】:2014-06-21 09:03:41
【问题描述】:

我们将在 Visual Studio 2010 中开发 asp .net web 应用程序。我们使用 asp .net 会员提供程序进行身份验证。默认情况下,当我在 Visual Studio 2010 中创建项目时,它会为 sql server 提供程序生成身份验证代码,我需要将其更改为 MySQL 提供程序。谁能指导我,是否可以默认使用mysql创建Web应用程序?如果可以,那怎么办?

【问题讨论】:

  • 提供者在连接字符串中确定。

标签: asp.net .net-4.0 asp.net-membership


【解决方案1】:

假设你是从头开始...

您要做的第一件事是获取最新版本的MySQL Connect。这将在您的应用程序中充当 MySQL 的 ADO.NET 驱动程序。

接下来是在您的应用程序配置中配置提供程序。 IT 通常看起来像这样:

<add name="MySqlMembershipConnection"
connectionString="Data Source=server_name;user id=username;password=password
database=database_name;" providerName="MySql.Data.MySqlClient"/>

providerName 在这里很重要。这将表明您的提供者是 MySQL。下一部分是会员提供者。它的类型是MySql.Web.Security.MySQLMembershipProvider, mysql.web,对于roleManager,它是MySql.Web.Security.MySQLRoleProvider, mysql.web

【讨论】:

    【解决方案2】:

    有许多提供者支持这一点,您可以在这里阅读它们并选择最适合您的:

    http://dev.mysql.com/tech-resources/articles/dotnet/index.html#ADO.NET

    【讨论】:

      【解决方案3】:

      我希望这会有所帮助,我做过类似的事情,但使用的是 Visual Studios 2012 Express for Web。

      首先在您的项目中引用包括“MySql.Data”和“MySql.Web”dll。

      之后,您将需要强名称实用程序从 MySql.Web.dll 获取公钥令牌。

      你应该得到这样的东西(公钥令牌在底部):


      MySql.Web.dll的sn C:\Program Files (x86)\MySQL\Connector NET 6.6.5\Assemblies\v4.0\MySql.Web.dll C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 工具>sn -Tp MySql.Web.dll

      Microsoft (R) .NET Framework 强名称实用程序版本 4.0.30319.33440 版权所有 (c) 微软公司。保留所有权利。

      公钥(哈希算法:sha1): 0024000004800000940000000602000000240000525341310004000001000100d973bda91f7175 2c78294126974a41a08643168271f65fc0fb3cd45f658da01fbca75ac74067d18e7afbf1467d7a 519ce0248b13719717281bb4ddd4ecd71a580dfe0912dfc3690b1d24c7e1975bf7eed90e4ab14e 10501eedf763bff8ac204f955c9c15c2cf4ebf6563d8320b6ea8d1ea3807623141f4b81ae30a6c 886b3ee1

      公钥令牌是 c5687fc88969c44d


      如果您右键单击 dll,它还会为您提供 dll 的版本。您需要将版本和公钥令牌放入您的 web.config 文件中。

      所以你的 web.config 文件应该是这样的:

                <membership defaultProvider="MySqlMembershipProvider" >
                  <providers>
                    <clear/>
                    <add name="MySqlMembershipProvider"
                         type="MySql.Web.Security.MySQLMembershipProvider,                 
                         MySql.Web, Version=6.6.5.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"
      
                         autogenerateschema="true"
                         connectionStringName="AdminConnString"
                         enablePasswordRetrieval="false"
                         enablePasswordReset="true"
                         requiresQuestionAndAnswer="false"
                         requiresUniqueEmail="false"
                         passwordFormat="Hashed"
                         maxInvalidPasswordAttempts="5"
                         minRequiredPasswordLength="6"
                         minRequiredNonalphanumericCharacters="0"
                         passwordAttemptWindow="10"
                         passwordStrengthRegularExpression=""
                         applicationName="/"
                         />
                  </providers>
                </membership>
      

      注意在添加名称胡萝卜中我引用了公钥令牌和 dll 的版本。

      这里可以帮助您连接您的 asp.net 应用程序以使用 MySQL Membership Provider。

      观看下面的视频,它几乎描述了我刚才所说的内容: https://www.youtube.com/watch?v=NN4y_88vNvo

      展示了如何将 ASP.NET 成员资格与 MySQL 联系起来。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-01-08
        • 2011-07-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-09
        相关资源
        最近更新 更多