【问题标题】:Simple Membership Provider vs Universal vs Code-First简单会员提供者 vs 通用 vs 代码优先
【发布时间】:2012-08-21 07:04:41
【问题描述】:

我想从 SQL Server Compact 的角度询问这三个成员资格提供程序之间有什么区别。据我所知,前两个可以通过设计使用紧凑型服务器,第三个我猜是巧合,因为实体框架。那么,实际上有什么不同吗?

【问题讨论】:

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


    【解决方案1】:

    Difference is Universal 与原始版本几乎相同,但增加了对 SQL Compact 和 Azure 的支持。简单的成员资格有点简化,有一些额外的现代实现,如基于令牌的密码重置,并且可以很好地与 ASP.NET 网页配合使用。两者都是使用准系统 SQL 编写的,并且具有笨重的表结构。代码优先是用 EF 编写的,因此它支持更多的数据库,它被简化了一点,因为它只能在一个站点上使用(在我当前的实现中)具有更简洁的表,易于扩展。代码优先提供更好的编程体验。

    Se3ker 的回答

    【讨论】:

    【解决方案2】:

    从 sql compact 的角度来看,提供程序之间没有区别。它们的功能相同。简单成员的工作方式与通用提供者的工作方式存在一些实现差异,所以如果你不关心它,那么你应该没问题

    【讨论】:

    • -1:你明白你自己脱口而出的意思了吗?提问者(和我)正试图选择一个提供者与另一个提供者。你说“有一些实现差异......所以如果你不关心它们,你应该没问题”。这有什么帮助?这些差异是原始问题的原因 - 它们需要解释!只有这样我们才能知道我们是否关心这些差异!
    【解决方案3】:

    SimpleMembership 提供者的结构设计糟糕 -

    您无法更改内部表名称 - 当您为两个或多个应用程序 [后端/前端] 拥有一个数据库时,有时为每个应用程序分别拥有单独的表很重要。

    因为表名已被开发为静态变量 - 您不能通过配置文件更改它们的名称,也不能通过自定义覆盖类:)。

    WebMatrix.WebSecurity 还包含自定义的 DataContext,它实际上不是“代码优先”。它的深处有相同的 xml 文件(具有数据库结构) - 所以它实际上是“数据库优先”,但具有无法更改的结构 - 它已作为资源嵌入。

    对我来说,标准会员资格比 WebSecurity 提供的更好。

    【讨论】:

    • "你不可能改变内部表名" 除非我很困惑..这个博客说你可以使用你自己的数据库表名和 SimpleMembership..weblogs.asp.net/jgalloway/archive/2012/08/29/…
    • @JBeckton:您可以使用自己的表而不是 UserProfile,并且不需要保留“UserName”和“UserId”列的名称 - 仅此而已。问题是您不能覆盖其他表的名称:webpages_Membership、webpages_Roles、webpages_OAuthMembership、webpages_UsersInRoles 由 SimpleMembershipProvider 创建,因此同一架构中的每个应用程序都将使用这四个表中的同一组。
    猜你喜欢
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-28
    相关资源
    最近更新 更多