在现有 Blazor 项目和单独的 WebApi 项目中添加身份验证

GAC*_*GAC 5 c# authentication asp.net-web-api asp.net-identity blazor

我是一名初学者,我选择使用托管 ASP.NET Core 的 Blazor WebAssembly 应用程序来学习 Blazor 和 WebApi(我知道我可以只使用包含客户端、服务器和共享项目的模板,但我感觉当我了解它们如何单独运作时我可以学得更好)。不管怎样,我做了以下事情:

  1. 创建了一个空的解决方案

  2. 使用ASP.NET Core Web 应用程序 (API)添加了Server.WebApi项目- 这是我放置所有WebApi 控制器的位置

  3. 使用类库(.NET 标准)目标框架 2.1添加了Lib.DataAccess项目- 这是我放置ApplicationDbContext.csMigrations文件夹的位置

  4. 使用类库(.NET 标准)目标框架 2.1添加了Lib.Entities项目- 这是我放置模型ViewModel 的位置

  5. 使用Blazor Web Assembly 应用程序添加了Client.Blazor项目,但未托管 ASP.NET Core,并且没有身份验证

到目前为止,我能够使一切正常工作。

但现在,我想学习如何在现有的解决方案中添加身份验证...但我不知道如何或从哪里开始...因为我也不太了解背后的概念或其工作原理..

查询:

  1. 有人可以帮忙将其添加到我现有的项目中吗?我是否在 Client.Blazor 和 Server.WebApi 上安装软件包?或者仅安装在 Server.WebApi 中?
  2. 我可以使用单独的 DbContext 和单独的数据库架构进行身份验证吗?或者使用不同的 DbContext 但使用相同的数据库架构是否正确?
  3. 关于#2,我不知道如何实现......
  4. 当我实施身份验证时,有没有办法选择用户角色(例如系统管理员、编码器、访客等...)?
  5. 当用户登录时(我有点假设用户帐户登录数据位于 Server.WebApi 中),我是否可以在 Client.Blazor 项目中检索用户帐户数据?

我很抱歉在这里问得太多,但是互联网上的信息太多了,我已经有点迷路了......提前感谢您的帮助!