对没有身份的经典asp和具有身份的asp.net核心使用相同的数据库

时间:2018-07-22 07:39:00

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

我有一个使用经典asp(asp.net之前的版本)开发的Web应用程序。我正在asp.net core 2.0中重新开发它。我想对用户表使用同一数据库,因为它具有所有数据。我也想保留经典的ASP网站,并为经典以及新的ASP.NET Web应用程序使用相同的数据库。在asp.net核心应用程序中,我想使用身份。我想将新列按身份重新添加到用户表,并将用户表而不是aspnetusers表用于asp.net核心。如何在不破坏传统ASP网站的情况下做到这一点?

2 个答案:

答案 0 :(得分:1)

如果您要使用来自ASP Classic的相同数据,则可能会遇到问题。在ASP Classic数据库中,使用表“用户”存储身份验证信息。可能您有一个密码字段。如何存储?是明码还是特定的哈希?

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

对于角色,可能也一样。

答案 1 :(得分:0)

可以通过两个步骤完成迁移:

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

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

选中此link找出确切步骤。

  1. 自定义身份表:

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

link提供了有关此操作方式的信息。