将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

最佳答案

因此,这是在查看一些源代码(MVC4)之后发现的。

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

SimpleMembership是抽象类ExtendedMembershipProvider的实现。
SimpleMembership中的代码主要是SQL操作,以及对基础(在文档中称为“上一个”)MembershipProvider的一些调用。

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

我不认为我会立即进行此操作,因为它看起来比以前更加复杂(有更多实现方法)...但是仍然可行。

但是,所有这些使我感到失望的是,我们仍然必须与MembershipProvider一起工作,恕我直言,它与我们非常喜欢ASP的整个依赖注入无关(很多静态和内部的东西)。网络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-forms-and-asp-net-mvc-4-templates.aspx

但是我的答案仍然有效,因为这(摘自乔恩·加洛韦的文章)恢复了它:


请注意,SimpleMembership仍需要某种形式的SQL Server-
它不适用于MySQL,NoSQL数据库等。您可以看一下
如果愿意,可以使用ILSpy之类的工具在WebMatrix.WebData.dll中编写代码
想知道为什么-在某些地方SQL Server特定的SQL
语句正在执行,尤其是在创建和
初始化表。看来您也许可以与
另一个数据库(如果您分别创建了表),但我没有
尝试过,目前尚不支持。

关于asp.net - 如何在没有 Entity Framework 的MVC中使用SimpleMembership,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12169595/

10-10 13:55