支持RavenDB的MVC4会员系统

12

我创建了很多快速的"MVC原型"应用程序,并发现随MVC4模板一起提供的SimpleMembership提供程序非常方便,因为它让我在几分钟内完成了用户注册和OAuth。

但是...我开始使用RavenDb(在RavenHQ上为我的很多项目)。因此,我开始尝试基于ExtendedMembershipProvider实现自己的"自定义成员资格提供程序",但在这样做时我意识到这没有什么意义。 后来,我偶然发现了两个有趣的项目,试图解决这个确切的问题:

这两个是相当有趣的最近的努力,想知道现在是否只有这些正在构建。 我基本上在寻找可以放入MVC4应用程序并连接到我的RavenDb即可完成的NuGet pkg。我愿意构建这个东西,但不想重复任何已经在运动中的工作。 谢谢!


我刚刚看到了Scott Allen的这篇文章,他介绍了EF和RavenDB会员资格。http://odetocode.com/blogs/scott/archive/2012/10/01/build-your-own-membership-system-for-asp-net-mvc-part-again.aspx - Dejan.S
你的问题有了解决吗?你最终使用了什么? - trailmax
我fork了https://github.com/OdeToCode/Memflex以满足我的需求。工作非常顺畅。但是我听说还有另一个项目(待公布)可以解决同样的问题。 - brad oyler
2个回答

4

有几个ASP.Net成员资格提供程序适用于RavenDB。 它们都不是官方的,它们的实现略有不同。 搜寻“ravendb membership provider”即可找到许多。

这里有一篇好文章here,与Raven自己的授权和认证捆绑包进行了比较。

我同意您的看法,应该更容易将SQL替换为各种MVC4模板上的Raven。 但是,除了依赖成员身份验证提供程序外,它们往往具有与Entity Framework配合使用的模型。 如果您从头开始编写针对RavenDB的示例模板,则最终产品可能会非常不同。

更新

我没意识到你在谈论新的 SimpleMembershipProvider。我不知道这个存在。我找到了Jon Galloway的文章,详细描述了它-很好的阅读材料。他指出了两个关键点,这里与之相关。我引用:

请注意,SimpleMembership仍然需要某种SQL Server-flavor-它无法使用MySQL、NoSQL数据库等。如果您想了解原因,可以使用类似ILSpy的工具查看WebMatrix.WebData.dll中的代码-特别是在创建和初始化表时执行SQL Server特定的SQL语句的地方。如果您单独创建了表,似乎您可以使用另一个数据库,但我没有尝试过,并且目前不支持。

...

重要的是要明白,SimpleMembershipProvider是MembershipProvider,但MembershipProvider不是SimpleMembershipProvider。在实践中,这种区别很重要:您不能使用现有的MembershipProvider(包括System.Web.Providers中找到的通用提供程序)与需要SimpleMembershipProvider的API一起使用,包括WebMatrix.WebData.WebSecurity或Microsoft.Web.WebPages.OAuth.OAuthWebSecurity中的任何调用。
那么我会认为为RavenDB编写SimpleMembershipProvider是不可能的。

是的,我已经谷歌搜索了“ravendb membership provider”,并发现了1或2个基于MVC3的其他项目,但不支持OAuth,这只满足了我50%的需求。我也知道RavenDb auth bundle,但它只处理“系统用户”,而不是我要找的应用程序用户。谢谢。 - brad oyler
似乎大多数人回答有关会员资格的问题时并不了解新的SimpleMembership提供程序。 - CodeMonkeyKing
MemFlex(正如我在问题中指出的那样)是为了支持RavenDB的SimpleMembership而构建的。我只是在寻找其他解决方案。顺便说一下,有人给我发了一封电子邮件,称很快就会有一个“解决方案”,但他们不能透露详细信息。 - brad oyler
你不应该能够将WebSecurity和OAuthWebSecurity隐藏在接口后面,然后自己实现方法吗? - Andrew
我下载并使用了MemFlex解决方案。它开箱即用,非常好用。但是有人能否介绍一下这个项目的状态?我们可以在生产系统中信任它吗?这段代码是否仍在维护中? - Yaron Levi


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接