将 Angular 和 .net core web api 安全地集成到现有的 MVC 5 应用程序中
Posted
技术标签:
【中文标题】将 Angular 和 .net core web api 安全地集成到现有的 MVC 5 应用程序中【英文标题】:Securely integrate angular and .net core web api into existing MVC 5 app 【发布时间】:2020-09-06 21:16:21 【问题描述】:我有一个使用 razorhtml 前端在 ASP.NET MVC 5 中构建的现有 CRM。我想将项目的一部分拆分为带有 .Net Core Web api 后端的 Angular 前端。
基本上,当客户点击某个页面上的“下一步”按钮时,Web api 将被调用并返回一个有角度的页面。然后客户在 angular 前端完成几个页面,通过 web api 将信息发送到 DB,然后将用户返回到旧的 MVC 项目。
我担心的问题是安全性。如何在两个应用程序之间对客户进行身份验证?
【问题讨论】:
【参考方案1】:假设您的 WebAPI 托管在与现有 MVC 解决方案相同的域上,您可以选择好的旧 cookie(但请注意 HttpOnly
和 Path
属性)。鉴于技术上的差异,这可能需要实施某种反向代理。
或者,您可以在 MVC 应用程序端生成一个令牌,并让您的 Angular 应用程序通过 request headers 将其传递给您的 API。在服务器端,您可以编写一个custom middleware 来处理不透明的令牌,或者利用现有的.Net Core Identity 和开箱即用的supports JWT。
鉴于您没有分享您的环境的任何细节 - 很难说 JWT 对您的用例来说是否是一种矫枉过正,但希望这可以为您提供一些进一步探索的背景。
【讨论】:
以上是关于将 Angular 和 .net core web api 安全地集成到现有的 MVC 5 应用程序中的主要内容,如果未能解决你的问题,请参考以下文章
将文件从 ASP.NET Core Web api 发布到另一个 ASP.NET Core Web api
深入研究 Angular 和 ASP.NET Core 3.0
如何将数据表从 .net core 5.0 web api 作为 json 传递到 Angular 前端?
ASP.NET Core 3.1 和 Angular:将 api 调用重定向到登录页面