现代化 .NET 框架 4.7.2 时代项目的身份验证选项
Posted
技术标签:
【中文标题】现代化 .NET 框架 4.7.2 时代项目的身份验证选项【英文标题】:Modernizing auth options for a .NET framework 4.7.2 era project 【发布时间】:2021-12-31 17:54:34 【问题描述】:我有一个遗留解决方案,它由一个带有 MVC 控制器的 ASP.NET Web 应用程序和一个 Web API 组成。它还有一些支持类库项目和 3rd 方库,用于生成 pdf 等内容。所有项目都针对 .NET Framework 4.7.2。它是非常基本的东西。
随着所有术语(.NET、.NET Framework、.NET Core、ASP.NET、ASP.NET CORE、.NET Standard 等)的出现,我不知道如何准确地谈论正确的技术堆。我认为考虑到时代(2012-2014)和我看到引用的程序集,我认为引用该技术的正确方法是使用 MVC 5 的 ASP.NET 应用程序(我看到引用了 Microsoft.AspNet.MVC @ 版本 5.0 的包)。也许它应该被称为 ASP.NET 5 应用程序?
我试图弄清楚这一点的原因是,对于我可以添加到我的网络应用程序中的关于身份验证的库,我无法说出我的潜在技术选项是什么。现在它使用带有会话 cookie 的表单身份验证,并且启动文件几乎完全是空白的(它只包含一个“app.MapSignalR();”我假设有人在将 SignalR 添加到项目时必须在某个时候添加。这是 System.Web 的“会员”和 web.config 设置的时代。
我看到许多现代方法,其中启动文件将包含 app.UseAuthentication() 或 app.AddX() 代码,我认为这意味着它们使用 OWIN 中间件或管道?这是 .NET Framework 4.7.2 目标应用程序希望利用的最现代的,所以我知道如何放入所需的依赖项来更改我的应用程序的这方面?
所有这些技术的历史和命名令人费解,令人困惑,希望有人知道我的选择是什么,或者可以帮助确定正确的技术术语,这样我就可以更有信心地进行研究。
编辑:
想提一下,Web 应用程序托管在 IIS 中,我不想更改。 我看到一些“Microsoft.Owin.Host.System.Web”@ 2.0.2 版的 OWIN 包引用(与 nuget.org 上的内容相比似乎相当老了)。另请参阅参考的“Microsoft.Owin”包@ 2.0.2 版。【问题讨论】:
扔掉一切,重新开始。严重地。自 MVC 5 以来,最先进的技术已经发展了如此之多,以至于试图硬塞现代身份验证流入这样的旧应用程序只会带来痛苦。 【参考方案1】:我最终发现我缺少的关键术语是 MVC5 中的“ASP.NET 身份”。这是需要 OWIN 管道的 ASP.NET 网站的身份验证/授权的演变。当时的默认项目模板包括适当的身份和身份验证相关类型以及将这些功能绑定到请求管道所需的 OWIN 相关类型。然后,包含的类型将让您与 openid 连接身份验证服务器、facebook/twitter/google 等集成。
【讨论】:
以上是关于现代化 .NET 框架 4.7.2 时代项目的身份验证选项的主要内容,如果未能解决你的问题,请参考以下文章
[Architect] ABP(现代ASP.NET样板开发框架) 介绍
Roslyn Source Generator 未在 .net 框架 4.7.2 中生成任何源
活动深度学习时代的数据科学和自然语言处理 & 为现代英特尔 CPU 优化深度学习框架
net6 项目搭建及引用框架记录(log4net,autofac,exception,api result,jwt,efcore)六添加身份验证,引入JWT