Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 如何在没有实体框架的MVC中使用SimpleMembership_Asp.net_Asp.net Mvc 4_Ravendb - Fatal编程技术网

Asp.net 如何在没有实体框架的MVC中使用SimpleMembership

Asp.net 如何在没有实体框架的MVC中使用SimpleMembership,asp.net,asp.net-mvc-4,ravendb,Asp.net,Asp.net Mvc 4,Ravendb,将SimpleMembership(ASP.NET MVC 4)与RavenDB(或其他数据库)而不是SQL Server一起使用需要哪些步骤 我习惯于覆盖MembershipProvider,但它如何与新的SimpleMembership一起工作 我看到有一个SimpleMembershipProvider,所以我认为应该重写它,但我不知道这些方法是否仅用于存储数据,或者它们是否应该包含业务/验证逻辑) 配置呢?我知道InitializeDatabaseConnection方法通常负责初始化整

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

我习惯于覆盖MembershipProvider,但它如何与新的SimpleMembership一起工作

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

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

不幸的是,我没有找到很多关于新SimpleMembership的资源,除了两个不太有用的链接:


SimpleMembership实际上并不适用于旧的会员资格提供商,因为它不能满足普通会员资格提供商的所有相同合同。它主要是为通过WebSecurity助手使用而设计的


此链接可能有助于了解更多信息:

以下是我在查看一些源代码(MVC4)后发现的内容

SimpleMembership是抽象类ExtendedMembershipProvider的实现。 SimpleMembership中的代码主要是SQL操作和对底层(文档中称为“previous”)成员资格提供程序的一些调用

我认为重写SimpleMembership没有任何用处(在我的例子中),因为它的实现主要与SQL Server绑定。相反,据我所知,我应该实现ExtendedMembershipProvider。然后,通过在web.config文件中设置此实现,WebSecurity助手将绕过SimpleMembership(默认实现),并调用ExtendedMembershipProvider的my实现

我不认为我会很快做到这一点,因为它看起来比以前更加复杂(要实现的方法更多)。。。但仍然可行

然而,尽管如此,我还是有点失望,我们仍然需要与成员资格提供商合作,这与我们非常喜欢的ASP.Net MVC/WebApi的依赖注入相比,还有很大的差距(很多静态和内部内容)

编辑1

这个问题是在Jon Galloway编写本教程之前提出的:

但我的回答仍然有效,因为这篇文章(摘自Jon Galloway的文章)继续:

请注意,SimpleMembership仍然需要一些SQL Server风格- 它不适用于MySQL、NoSQL数据库等。您可以看看 WebMatrix.WebData.dll中的代码使用ILSpy之类的工具,如果您愿意 想知道原因吗?有些地方特定于SQL Server的SQL 正在执行语句,尤其是在创建和 初始化表。看来你可以和我一起工作了 另一个数据库,如果您单独创建了表,但我没有 尝试过,但此时不受支持


这是我对mongodb的实现。也许会有帮助

谢谢,但我知道所有这些。我还知道SimpleMembership是旧的MembershipProvider之上的一层。我只想覆盖数据层(SQLCRUD)。今晚我将尝试重写SimpleMembershipProvider类,并将结果发布在此处以供将来参考。如果这是您想要的,您可能只需要实现自己的ExtendedMembership提供程序(如果可能,它将扩展SimpleMembership)微软的提供者乔恩·加洛韦(Jon Galloway)发布了一些关于SimpleMembership的非常有用的见解,内容是:为什么?为什么你要强制使用int作为用户ID-ExtendedMembershitProvider!?我正在做与这个问题相同的事情。您是否已使用
ExtendedMembershipProvider
开始任何代码?谢谢!我已经为RavenDB做了类似的实现。。。我只是懒得在GitHub上分享它(总有一天我会的)。我相信你的帖子会有帮助!太懒了?哈哈,你能把它发到博客上吗?这将真正帮助一些raven用户。。。。