MySQL的ASP.NET成员资格/角色提供程序?

时间:2010-01-10 22:53:28

标签: mysql asp.net-mvc authentication asp.net-membership

我对ASP.NET成员资格/角色一点也不熟悉。这是我第一次使用它,也是我第一次尝试使用ASP.NET MVC。当我为MVC创建我的第一个项目时,它为我提供了一个可爱的模板来创建一个帐户。我很高兴看到我不必手动执行此操作。但是,它失败了,因为它无法连接到SQL Server。我没有SQL Server,我有MySQL。有没有简单的方法可以让这个系统改为使用MySQL,还是我必须创建自己的身份验证?

6 个答案:

答案 0 :(得分:19)

弄清楚了!使用MySql Connector/Net版本6.2.2.0,请按照以下步骤操作...

  • 添加对MySql.Web.dll的引用
  • 将web.config中的<membership>更改为:

    <membership defaultProvider="MySqlMembershipProvider">
      <providers>
        <clear/>
        <add name="MySqlMembershipProvider"
             type="MySql.Web.Security.MySQLMembershipProvider,
                   MySql.Web, Version=6.2.2.0, Culture=neutral,
                   PublicKeyToken=c5687fc88969c44d"
             autogenerateschema="true"
             connectionStringName="NAME_OF_YOUR_CONN_STRING"
             enablePasswordRetrieval="false"
             enablePasswordReset="true"
             requiresQuestionAndAnswer="false"
             requiresUniqueEmail="false"
             passwordFormat="Hashed"
             maxInvalidPasswordAttempts="5"
             minRequiredPasswordLength="6"
             minRequiredNonalphanumericCharacters="0"
             passwordAttemptWindow="10"
             passwordStrengthRegularExpression=""
             applicationName="/"
         />
      </providers>
    </membership>
  • 运行项目| ASP.NET配置工具,然后单击“安全”选项卡进行测试
  • 在ASP.NET 3.5,MySQL Server版本5.1,Windows XP 64位
  • 上测试

答案 1 :(得分:2)

原始问题未指定哪个版本的ASP.NET&amp;使用MVC。随着最近发布的.NET 4.5和MVC 4,我遇到了与OP相同的问题但使用了新技术。这是我quick fix for it与Josh Stodola的答案大致相同的配置,但还有一些额外的步骤。

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

获取AccountController和Views工作:

  1. 删除MVC 4 AccountController,AccountModels,帐户视图文件夹和_LoginPartial共享视图
  2. 创建新的MVC 3 Web应用程序
  3. 将MVC 3 AccountController,AccountModels,Account视图文件夹和_LogOnPartial共享视图复制到MVC 4应用程序中
  4. 使用@Html.Partial(“_LoginPartial”)
  5. 替换共享_Layout视图中的@Html.Partial(“_LogOnPartial”)

答案 2 :(得分:0)

我用asp.net做过这个,但我认为它也可以用于mvc:hasangursoy.com.tr/aspnet-authorization-authentication-with-mysql

答案 3 :(得分:0)

在我的场景中,我不需要从我的.NET Web应用程序连接到MySQL。因此,我通过做两件事解决了这个问题:

1)卸载MySQL .NET Connector(所有版本) 2)在Web.Config文件中,删除MySQL安装后添加的所有密钥。 (或者,在安装之前将原始Web.Config文件复制回.NET Web应用程序根文件夹)

现在,我的.NET应用程序是bac

答案 4 :(得分:0)

不得不经历类似的事情。

这是帮助我的官方MySql演练:
Tutorial: MySQL Connector/Net ASP.NET Membership and Role Provider

注意:在我的情况下,要编辑的machine.config 32位一个(他们没有指定哪个,编辑64位没有帮助)。< / p>

答案 5 :(得分:-1)

单击菜单Project,然后单击ASP.NET Configuration。

这将在Data文件夹中为您创建sql数据库。

使用Visual Studio查看数据。

希望这有帮助。

修改

我应该补充一点,然后您可以使用Ctrl + Alt + S查看服务器资源管理器,然后该资源管理器允许您使用其表和数据查看数据库。

您不应该安装SQL。