加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-16 00:33:07 所属栏目:asp.Net 来源:网络整理
导读:使用SimpleMembership(ASP.NET MVC 4)与RavenDB(或其他数据库)而不是SQL Server所需的步骤是什么? 我习惯于覆盖MembershipProvider,但是如何使用新的SimpleMembership? 我看到有一个SimpleMembershipProvider,所以我想我应该覆盖它,但我不知道这些方法
使用SimpleMembership(ASP.NET MVC 4)与RavenDB(或其他数据库)而不是SQL Server所需的步骤是什么?

我习惯于覆盖MembershipProvider,但是如何使用新的SimpleMembership?

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

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

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

解决方法

所以这里是我看到的一些源代码(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的实现。

我不认为我会这样做,因为它看起来比以前更复杂(更多的方法来实现)…但仍然可行。

然而,这一切都说,我有点失望,我们仍然需要与会员资格提供商(IMHO)进行合作,这是我们非常喜欢ASP的整个依赖注入的事情(很多静态和内部的东西)。 Net 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的文章中)恢复:

Note that SimpleMembership still requires some flavor of SQL Server – it won’t work with MySQL,NoSQL databases,etc. You can take a look at the code in WebMatrix.WebData.dll using a tool like ILSpy if you’d like to see why – there are places where SQL Server specific SQL statements are being executed,especially when creating and initializing tables. It seems like you might be able to work with another database if you created the tables separately,but I haven’t tried it and it’s not supported at this point.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读