【问题标题】:SimpleMembership with SQL Server Express database使用 SQL Server Express 数据库的 SimpleMembership
【发布时间】:2012-10-19 11:29:09
【问题描述】:

我最近发现 ASP.NET MVC 4 使用 SimpleMembership 而不是传统的 ASP.NET Membership 提供程序。

我希望使用 SimpleMembership,但我也希望使用 Sql Server express 数据库(稍后我将使用“真正的”Sql Server db)。

我习惯于使用 aspnet_regsql 为应用程序服务设置我的 sql server 数据库,因此插入必要的成员表。

但是,此应用程序不会设置数据库以使用 SimpleMembership。

谁能告诉我怎么做?

【问题讨论】:

    标签: sql-server asp.net-mvc simplemembership


    【解决方案1】:

    您需要注释掉 WebSecurity.InitializeDatabaseConnection 代码行(否则当您第一次到达登录表单时,应用程序将尝试在定义的 web.config 连接字符串上创建简单的成员资格表)。

    然后您需要更新您的帐户控制器代码,因为它是为 simpleMembership 编写的,以反映您选择的会员资格提供商。

    最近我通过创建一个 MVC3 项目然后将其升级到 MVC4 (read the how to upgrade mvc3 to mvc4 section) 来做到这一点。不是最干净的,但它确实使我不必更新帐户控制器代码。

    【讨论】:

      【解决方案2】:

      我建议查看 InitializeSimpleMembershipAttribute,它位于“Filters”文件夹中

      有一个初始化数据库的命令。如果表已经创建,它会检查自己。

      WebSecurity.InitializeDatabaseConnection("connStringName", "UserProfile", "UserId", "UserName", autoCreateTables: true);
      

      这些表格是:

      • UserProfile => 在我的情况下,因为初始化程序
      • webpages_OAuthMembership
      • webpages_Membership
      • webpages_OAuthToken
      • webpages_Roles
      • webpages_UsersInRoles

      您可以查看 aspnetwebstack 项目的源代码

      【讨论】:

        猜你喜欢
        • 2011-05-06
        • 2010-12-12
        • 1970-01-01
        • 1970-01-01
        • 2010-09-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多