支持RavenDB的MVC4成员系统

时间:2012-12-02 03:49:07

标签: asp.net-mvc asp.net-mvc-4 ravendb membership-provider

我创建了许多快速的“概念证明”MVC应用程序,我实际上发现随MVC4模板一起提供的SimpleMembership提供程序非常方便,因为它让我开始运行用户注册和& OAuth只需几分钟。

但是......我已经开始使用RavenDb(在我的项目中使用RavenHQ)。所以,我开始尝试基于ExtendedMembershipProvider实现我自己的“自定义成员资格提供程序”,并且在这样做时我意识到这没有多大意义。 我后来偶然发现了两个试图解决这个问题的有趣项目:

两者都是最近非常有趣的努力,并且想知道这些是否是现在唯一正在建造的。我基本上都在寻找nuget pkg,我可以将其放入MVC4应用程序,连接到我的RavenDb并完成。我愿意建立这个东西,但不想重复任何已经在行动的努力。 THX!

2 个答案:

答案 0 :(得分:4)

RavenDB有几个ASP.Net成员资格提供程序。它们都不是官方的,它们的实现都略有不同。谷歌为“ravendb会员提供商”,你会发现很多。

有一篇好文章here将其中一些与Raven自己的授权和身份验证包进行比较。

我同意你的意见,在各种MVC4模板上更换SQL for Raven会更容易。但是,除了依赖成员资格提供程序之外,它们还倾向于使用旨在与Entity Framework一起使用的模型。如果您在编写RavenDB时从头开始编写示例模板,那么最终产品可能会有所不同。

<强>更新

我没有意识到你在谈论新的SimpleMembershipProvider。我不知道这存在。我发现Jon Galloway's article详细描述了它 - 这是一本很棒的读物。他指出了两个与此相关的关键点。我引用:

  

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

...

  

这里要注意的重要一点是SimpleMembershipProvider是MembershipProvider,但MembershipProvider不是SimpleMembershipProvider。   这种区别在实践中很重要:您不能将现有的MembershipProvider(包括System.Web.Providers中的Universal Providers)与需要SimpleMembershipProvider的API一起使用,包括WebMatrix.WebData.WebSecurity或Microsoft.Web中的任何调用。 WebPages.OAuth.OAuthWebSecurity。

我会收集到为RavenDB写SimpleMembershipProvider是不可能的。

答案 1 :(得分:1)