1

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

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

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

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

谁能告诉我该怎么做?

4

2 回答 2

1

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

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

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

于 2012-11-29T16:30:04.933 回答
1

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

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

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

这些表是:

  • UserProfile => 在我的情况下,因为初始化程序
  • 网页_OAuthMembership
  • 网页_会员
  • 网页_OAuthToken
  • 网页_角色
  • 网页_UsersInRoles

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

于 2012-11-08T12:34:17.110 回答