如何在没有实体框架的MVC中使用SimpleMembership

W3M*_*Max 17 asp.net ravendb asp.net-mvc-4

使用SimpleMembership(ASP.NET MVC 4)与RavenDB(或其他数据库)而不是SQL Server的必要步骤是什么?

我习惯于覆盖MembershipProvider,但它如何与新的SimpleMembership一起使用?

我看到有一个SimpleMembershipProvider所以我认为我应该覆盖它,但我不知道这些方法是仅用于存储数据目的还是它们应该包含业务/验证逻辑)...

配置怎么样?我知道InitializeDatabaseConnection方法通常负责初始化整个shebang,但如果我不使用Entity Framework,我认为不应该调用它.

不幸的是,除了两个不太有用的链接之外,我没有找到关于新SimpleMembership的大量资源:

http://igambin.blogspot.ca/2012/08/simplemembershipprovider-huh.html

http://blog.osbornm.com/archive/2010/07/21/using-simplemembership-with-asp.net-webpages.aspx

W3M*_*Max 11

所以这是我在查看一些源代码(MVC4)后发现的内容.

http://aspnetwebstack.codeplex.com/SourceControl/changeset/view/553690ac9488#src%2fWebMatrix.WebData%2fExtendedMembershipProvider.cs

SimpleMembership是抽象类ExtendedMembershipProvider的实现.SimpleMembership中的代码主要是SQL操作,有些调用底层(在文档中称为"previous")MembershipProvider.

我认为覆盖SimpleMembership没有任何用处(在我的情况下),因为它的实现主要与SQL Server绑定.相反,根据我的理解,我应该实现ExtendedMembershipProvider.然后,通过在web.config文件中设置此实现,WebSecurity帮助程序将绕过SimpleMembership(默认实现)并调用我的ExtendedMembershipProvider实现.

我认为我不会很快这样做,因为它看起来比以前更复杂(实施的方法更多)......但仍然可行.

然而,所有这些说,我有点失望,我们仍然需要与MembershipProvider合作,恕我直言,远非(很多静态和内部的东西)来自整个依赖注入的东西,我们非常喜欢ASP. Net MVC/WebApi.

编辑1

在Jon Galloway撰写本教程之前,这个问题很难解决:http://weblogs.asp.net/jgalloway/archive/2012/08/29/simplemembership-membership-providers-universal-providers-and-the-new-asp-net -4-5-web的表单和-ASP净MVC -4- templates.aspx

但我的回答仍然有效,因为这(摘自Jon Galloway的文章)恢复了它:

请注意,SimpleMembership仍然需要一些SQL Server的味道 - 它不适用于MySQL,NoSQL数据库等.如果你想看看,你可以使用像ILSpy这样的工具来查看WebMatrix.WebData.dll中的代码.原因 - 有些地方正在执行SQL Server特定的SQL语句,尤其是在创建和初始化表时.如果您单独创建表,似乎您可以使用其他数据库,但我还没有尝试过,此时不支持它.

  • 为什么哦为什么要强制使用int作为用户ID - ExtendedMembershitProvider !? (14认同)