17

将 SimpleMembership (ASP.NET MVC 4) 与 RavenDB(或其他数据库)一起使用而不是 SQL Server 需要哪些步骤?

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

我看到有一个 SimpleMembershipProvider 所以我想我应该重写它,但我不知道这些方法是否仅用于存储数据目的,或者它们是否应该包含业务/验证逻辑)......

配置呢?我知道 InitializeDatabaseConnection 方法通常负责初始化整个 shebang,但如果我不使用实体框架,我认为我不应该调用它。

不幸的是,我没有找到很多关于新的 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

4

3 回答 3

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 的整个依赖注入东西相去甚远(很多静态和内部的东西)。网络 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

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

请注意,SimpleMembership 仍然需要一些 SQL Server 风格 - 它不适用于 MySQL、NoSQL 数据库等。如果您想查看 WebMatrix.WebData.dll 中的代码,可以使用 ILSpy 等工具查看为什么 - 在某些地方执行 SQL Server 特定的 SQL 语句,尤其是在创建和初始化表时。如果您单独创建表,您似乎可以使用另一个数据库,但我还没有尝试过,目前不支持它。

于 2012-08-30T00:41:24.200 回答
4

这是我对 mongodb 的实现。也许它可以帮助 https://github.com/malibeg/MongodbSimpleMembershipProvider#readme

于 2013-01-11T08:11:35.847 回答
1

SimpleMembership 并不是真的要与旧的 MembershipProviders 一起使用,因为它并不能满足所有与普通 MembershipProviders 相同的合同。它主要设计用于通过 WebSecurity 帮助程序使用。

此链接可能有助于了解更多信息:网页教程

于 2012-08-29T20:29:21.153 回答