12

我创建了很多快速的“概念证明”MVC 应用程序,实际上我发现 MVC4 模板附带的 SimpleMembership 提供程序非常方便,因为它让我在几分钟内启动并运行用户注册和 OAuth。

但是...我已经开始使用 RavenDb(在 RavenHQ 上用于我的项目很多)。因此,我开始尝试基于 ExtendedMembershipProvider 实现我自己的“自定义会员提供程序”,同时我意识到这并没有多大意义。后来我偶然发现了 2 个试图解决这个确切问题的有趣项目:

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

4

2 回答 2

4

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

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

我同意你的观点,在各种 MVC4 模板上将 SQL 替换为 Raven 应该更容易。但是,除了依赖于成员资格提供者之外,他们往往拥有旨在与实体框架一起使用的模型。如果您要使用 RavenDB 从头开始​​编写示例模板,您可能会得到一个非常不同的最终产品。

更新

没想到你说的是新的SimpleMembershipProvider。我不知道这存在。我发现Jon Galloway 的文章详细描述了它 - 很好读。他指出了与此相关的两个关键点。我引用:

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

...

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

那时我会认为为 RavenDB 编写一个SimpleMembershipProvider是不可能的。

于 2012-12-02T17:01:12.343 回答
1

有一个新项目似乎使用 RavenDb 巧妙地实现了 AspNet.Identity http://www.tugberkugurlu.com/archive/aspnet-identity-ravendb--fully-asynchronous-new-and-sweet-asp-net-identity- ravendb 的实现

于 2014-01-13T20:59:40.523 回答