【问题标题】:using same database for classic asp without identity and asp.net core with identity对没有身份的经典 asp 和有身份的 asp.net 核心使用相同的数据库
【发布时间】:2018-07-22 07:38:59
【问题描述】:

我有一个用经典 asp(asp.net 之前的版本)开发的 web 应用程序。我在 asp.net core 2.0 中重新开发它。我想使用与用户表相同的数据库,因为它包含所有数据。我也想保留经典的 asp 网站,并为经典和新的 asp.net Web 应用程序使用相同的数据库。在 asp.net 核心应用程序中,我想使用身份。我想将身份要求的新列添加到用户表中,并使用用户表而不是 aspnetusers 表作为 asp.net 核心。如何在不破坏经典的 asp 网站的情况下做到这一点?

【问题讨论】:

  • 您在这里并没有真正提供太多细节。如果您只是在数据库表中添加列而不重命名任何内容,那么它没有理由破坏任何内容,您的经典 asp 页面应该像以前一样工作
  • 另一种选择是使用您自己的逻辑执行Cookie authentication in ASP.NET Core 2 without ASP.NET Identity 来验证凭据。
  • 标记为基于主要意见。

标签: c# asp.net-core asp-classic .net-core asp.net-identity


【解决方案1】:

如果您想使用来自ASP Classic 的相同数据,那么您可能会遇到问题。在您的 ASP Classic 数据库中,您使用表“用户”来存储身份验证信息。可能您有一个密码字段。它是如何存储的?在明确的或特定的散列中?

ASP.NET Identity 有自己的密码存储机制。它使用可能与您的旧应用程序不同的特定散列类型。因此,您不能在两个应用程序中使用相同的密码。

角色也可能如此。

【讨论】:

    【解决方案2】:

    迁移可以分两步完成:

    1. 将数据库添加到新项目:

    Asp.Net Core 使用 Entity Framework Core,它可以首先用作数据库,这意味着它可以与现有数据库一起使用。 您需要做的就是将您现有的数据库连接到您的新项目并使用脚手架,以便实体框架将获取数据库并根据它创建模型。

    查看此link 了解具体步骤。

    1. 自定义身份表:

    他们可能需要在身份相关表中进行一些进一步的更改,以便它可以与您现有的数据库一起使用。

    link 提供有关如何执行此操作的信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-02
      • 2021-02-06
      • 2021-06-11
      • 2017-11-12
      • 2019-03-24
      • 2018-06-23
      • 2019-11-09
      • 2017-09-13
      相关资源
      最近更新 更多