【问题标题】:ASP.NET Membership/Role providers for MySQL?MySQL 的 ASP.NET 成员资格/角色提供程序?
【发布时间】:2011-01-03 14:01:12
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    想通了!使用 MySql Connector/Net 的 6.2.2.0 版本,请按照以下步骤操作...

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

      提供者>
      会员>
    • 运行项目 | ASP.NET 配置工具,点击安全选项卡进行测试
    • 在 ASP.NET 3.5、MySQL Server 5.1 版、Windows XP 64 位上测试

    【讨论】:

    • 谢谢。这是一个很大的帮助。不要错过添加 defaultProvider!
    【解决方案2】:

    最初的问题没有指定使用的是哪个版本的 ASP.NET 和 MVC。随着最近发布的 .NET 4.5 和 MVC 4,我遇到了与 OP 相同的问题,但使用了新技术。这是我的quick fix for it,与乔什·斯托多拉的回答基本相同,但有一些额外的步骤。

    <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、Account 视图文件夹和 _LoginPartial 共享视图
    2. 创建一个新的 MVC 3 Web 应用程序
    3. 将 MVC 3 AccountController、AccountModels、Account 视图文件夹和 _LogOnPartial 共享视图复制到您的 MVC 4 应用程序中
    4. 将共享_Layout 视图中的@Html.Partial(“_LoginPartial”) 替换为@Html.Partial(“_LogOnPartial”)

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

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

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

        【讨论】:

          【解决方案5】:

          不得不经历类似的事情。

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

          注意:在我的例子中,要编辑的 machine.config32 位 的(他们没有指定哪个,编辑 64 位的也没有帮助)。

          【讨论】:

            【解决方案6】:

            单击菜单项目,然后单击 ASP.NET 配置。

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

            使用 Visual Studio 查看数据。

            希望这会有所帮助。

            编辑

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

            您不需要安装 SQL。

            【讨论】:

            • 我终于找到了工具(它比糖蜜慢),但我没有看到任何数据库。我去了安全选项卡,并尝试选择一个数据存储。然后它给了我一个提供者列表,但只有一个提供者(AspNetSqlProvider),但这给了我同样的错误(无法连接到 SQL 服务器)。
            • 在 Visual Studio 中您现在可以看到 aspnetdb.mdf 文件吗?它应该在 App_Data 文件夹中。确保显示所有文件。
            • 没有。 MDF = SQL 服务器。我确实没有有 SQL Server。
            • 您需要编辑您的 web.config 以使用您的提供程序
            猜你喜欢
            • 1970-01-01
            • 2010-11-18
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2010-11-15
            • 1970-01-01
            相关资源
            最近更新 更多