首页 > 解决方案 > 将 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。

可能吗?

标签: asp.net-coreasp.net-core-webapirazor-pages

解决方案


我通过使用来自剃须刀页面的简单 json 响应替换 webapi 来解决这个问题 - 使用此博客文章中的想法: https ://www.mikesdotnetting.com/article/318/working-with-json-in-razor-pages

这为我提供了我需要的 json 输出,但也将其作为标准剃须刀页面进行保护。


推荐阅读