【问题标题】:Upgrade .net core 2.1 to 3.1将 .net core 2.1 升级到 3.1
【发布时间】:2021-10-13 13:46:01
【问题描述】:

我在我的 WEB API 中将 .NET core 2.1 升级到 3.1。我很久以前已经在我的 .NET API 中实现了 JWTBearer 逻辑。

但是当我将我的 API 从 2.1 升级到 3.1 时,问题是未找到 JWT 不记名名称空间错误。

我已将 Microsoft.AspNetCore.APP 从 2.1 升级到 2.2(最新),这是 Microsoft.AspNetCore.Authentication.JwtBearer 的根程序集。虽然包中的引用可用,但在名称空间中不可用。

因此出现构建错误。

【问题讨论】:

  • 你安装了Microsoft.AspNetCore.Authentication.JwtBearer nuget 包吗?
  • 您是否将项目配置为使用 3.1 版本?
  • 是的,如果我们安装 Microsoft.AspNetCore.APP 会安装 JWTBearer 是的,将我的 API 项目配置为 3.1
  • 参考Migrate from ASP.NET Core 2.2 to 3.0的迁移步骤。有很多迁移步骤要遵循。希望这会有所帮助。

标签: asp.net-core .net-core jwt asp.net-core-3.1


【解决方案1】:

请查看this article:

我们可以看到 Microsoft.AspNetCore.Authentication.JwtBearer.dll 已经从 Asp.net Core 3.0 版本的 Microsoft.AspNetCore.App 包中删除。当将应用程序从 ASP.NET Core 2.2 迁移到 3.0 时,它已经建议删除过时的包引用。

所以,在asp.net core 3.1应用中,要实现JWT认证,我们需要安装以下包:

  • System.IdentityModel.Tokens.Jwt
  • Microsoft.IdentityModel.Tokens
  • Microsoft.AspNetCore.Authentication.JwtBearer

更多详细信息,请参阅Implement JWT In ASP.NET Core 3.1

【讨论】:

  • 感谢知绿的信息!
【解决方案2】:

此问题已解决。我已经安装了 JWT 3.1.9 版本。

确切的程序集是 Microsoft.AspNetCore.Authentication.JwtBearer。

这支持 .Net core 3.1 框架。

谢谢!

【讨论】:

  • 除了特定的版本号之外,您的答案没有添加比智的更多信息。与其做一个多余的答案,你应该接受智的答案,然后删除你的。
  • 问题仅与版本号有关。所以我已经浏览了可用于 JWT 的版本。它有效。
  • 知特说要添加对Microsoft.AspNetCore.Authentication.JwtBearer的引用。您的答案仅在此基础上添加了一个特定的版本号。这是一个小细节,您可以在评论中留下。
  • 其实我已经尝试在zhi的评论之前添加程序集。直到你找到一个正确的程序集版本不起作用。希望你明白了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多