【问题标题】:Configure .NET CORE MVC App with Authorization roles (2 SqlLite DB's)使用授权角色配置 .NET CORE MVC 应用程序 (2 Sqlite DB)
【发布时间】:2020-10-28 05:07:19
【问题描述】:

我在 .Net Framework MVC 应用程序(Here 项目)中了解了 AuthRoles,该应用程序使用 2 个 SqlServer 数据库(1 个用于角色、用户和密码...),另一个用于 App 表。

现在我正在使用 SqlLite 在 NET CORE 中尝试相同的方法,但我不知道如何管理 2 DbContext。如何迁移到我的 App DB 并让 Roles DB 仅用于身份验证、注册等。

首先,我按照this教程联系net core,完成了一个mvc示例(1个表,没有外键)。但我没有身份验证逻辑,只有 App db。

之后,我发现 this 教程适用于 Roles SqlLite DB但只有 1 个 DB。(完成示例 Here)。

您能否向我解释一下如何在 .net core 中使用身份验证,如果可能的话,使用 2 bd,1 用于应用程序,另一个用于用户密码、角色等?

编辑

尝试使用我的 net Core mvc 应用程序,我设法创建了一个 Identity sqlLite.db。我从迁移中创建了另一个数据库(应用程序表),它现在只有用户表。但有些问题:

  • 迁移应用程序(使用 --context 'AppDbContext')生成一个 db,其中包含已在 IdentityRolesUsers db 中生成的 Identity 表,并与我的应用表 User 混合。
  • 注册用户时,AspUsers 表 (IdentityDb) 未链接到 Users 表,并且 AspUser 是在 IdentityDb 中创建的。

Here 我的迁移文件(在 ef 更新之前)。有什么解决办法吗?

谢谢!

【问题讨论】:

    标签: c# asp.net-mvc entity-framework asp.net-core


    【解决方案1】:

    对于第一个问题,您可以在一个项目中为一个数据库或多个数据库使用multiple DbContext。它简单明了;您应该在 ConfigureServise 中分别注册每个 DbContext

    但是你为什么要分离你的“角色数据库”呢?

    在下面的链接中,您可以了解如何在 Dotnet 核心中使用 Identity。

    https://docs.microsoft.com/en-us/aspnet/core/security/authentication/identity?view=aspnetcore-3.1&tabs=visual-studio

    【讨论】:

    • 角色db的分离我认为这是一种常见的做法。当您创建具有身份验证的项目时: dotnet new webapp --auth Individual -o WebApp1 它会创建一个包含角色、用户、密码等的 app.db (sqlslite)。目标是将其与 App db 用户表相关联。 (见here。)。
    • 这取决于您的解决方案架构,但在.net 项目的默认结构中,您可以看到您的AppDbContext 继承自IdentityDbContext。这意味着您拥有一个可以处理所有内容的数据库。
    • Here DA924,捍卫将用户身份信息保存在一个身份数据库和应用程序的另一个数据库中。我的老师,教我们这种使用 mvc asp.net 框架(here)开发的做法,我不知道是否是一种过时的做法,使用 .net 核心更好地将所有内容保存在一个独特的数据库中。如果我想这样做。在 .net core 中,我该怎么做?
    猜你喜欢
    • 2021-12-04
    • 1970-01-01
    • 1970-01-01
    • 2018-04-13
    • 2021-09-04
    • 2018-07-03
    • 2013-04-06
    • 2014-02-25
    • 1970-01-01
    相关资源
    最近更新 更多