asp.net-core - 将 Web Api 授权添加到现有 Razor 页面应用程序
问题描述
我有一个使用 Razor Pages 和内置身份验证的 asp.net core 2.2 应用程序。该应用程序在启动时非常简单。
.AddRazorPagesOptions(options =>
{
options.Conventions.AuthorizeFolder("/", CO.AdminUserRole);
})
..一切正常。在应用程序内部,我有一些 CRUD 页面,其中有一个数据表网格。要编辑记录,请单击行上的编辑按钮,然后我使用 jquery 从 Web api 控制器中提取该特定记录的详细信息。
这一切都很好。我唯一的问题是我可以在 Web 浏览器中输入 /api/[object]/[id] 并获取数据,而无需成为授权用户。
当然,我不想有另一个授权过程,所以我可以使用 api。相反,我希望能够使用现有的剃须刀页面授权状态来授权使用 api。
可能吗?
解决方案
我通过使用来自剃须刀页面的简单 json 响应替换 webapi 来解决这个问题 - 使用此博客文章中的想法: https ://www.mikesdotnetting.com/article/318/working-with-json-in-razor-pages
这为我提供了我需要的 json 输出,但也将其作为标准剃须刀页面进行保护。
推荐阅读
- emacs - 为什么 Emacs local-set-key 不会覆盖模式挂钩中的全局设置键?
- php - 如何使用 PHP 编辑图像中的特定像素
- mysql - 完整性约束违规:1048 列 'temporary_address' 在可为空的字段中不能为空错误
- android - 小部件 onUpdate 调用一次
- javascript - JavaScript - 声明全局变量
- windows - 终端中的不可见文本与纱线
- javascript - 从 javascript 中已有的数组中创建新数组
- jquery - Angular - 如何在 angular component.ts 中定义 owl carousel 回调函数?
- c++ - 模板元编程 - g++ 吃掉它,clang 不吃
- reactjs - 为什么我在安装 REACT 时收到此错误?