【问题标题】:ASP.NET Core 2.0 Using old ASP.NET 2.0 database structure for authenticationASP.NET Core 2.0 使用旧的 ASP.NET 2.0 数据库结构进行身份验证
【发布时间】:2018-07-08 03:15:37
【问题描述】:

所以我一直在开发一个 ASP.NET Core 2.0 应用程序,我想知道是否可以在我的 ASP.NET Core 2.0 应用程序中使用带有下表的旧 SQL 数据库。

正如我read online 一样,这是使用 ASP.NET 2.0 SqlMemebershipProvider 类的默认数据库结构。是否可以在我的应用程序中实现这一点,如果可以,我应该如何处理?

【问题讨论】:

    标签: c# authentication asp.net-core asp.net-core-2.0


    【解决方案1】:

    您所说的结构称为 ASP.NET Membership,它适用于任何 ASP.NET 版本,最高为 4.5。
    在 ASP.NET Core 中没有运行 Membership 的内置方法,因为 Membership 已经死了很多年。你有两条路要走:

    1. 移至 ASP.NET Identity,适用于 ASP.NET 4.x 和 Core。您将需要手动迁移数据。
    2. 创建类以手动使用数据。请注意,您不会拥有会员资格的任何安全功能,因此我强烈反对这样做。

    当然,第三条路径是在 ASP.NET MVC 5 应用程序上继续使用过时的成员资格。

    【讨论】:

    • “创建类以手动使用数据”是什么意思?要创建一个使用与成员资格类相同属性的类?
    • @Jeroen 是的,您需要使用 ADO.NET 或一些 ORM 来使用表中的数据
    • 因此,例如在我的 Startup.cs 中,我可以使用 services.AddIdentity() 方法,而用户和角色将是那些类?
    • @Jeroen 这可行,但您可能需要实现自定义类,例如 IPasswordHasher(使用的 Membership 非常古老,Identity 的默认实现要强大得多)
    • 我们迁移到 ASP.NET 身份
    【解决方案2】:

    旧表结构与 ASP.NET Identity 不兼容。干净利落。您最好的前进路径是生成 Identity 确实 使用的表,然后将数据从旧表迁移到这些表。其他都行不通。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-23
      • 1970-01-01
      • 2018-08-15
      • 2018-01-30
      • 1970-01-01
      • 2020-03-29
      • 2018-01-24
      • 2018-03-30
      相关资源
      最近更新 更多