将Web Api授权添加到现有Razor Pages应用

时间:2019-07-19 01:45:59

标签: asp.net-core asp.net-core-webapi razor-pages

我有一个使用Razor Pages和内置身份验证的asp.net core 2.2应用程序。该应用程序在启动时非常安全。

.AddRazorPagesOptions(options =>
{
options.Conventions.AuthorizeFolder("/", CO.AdminUserRole);
})

..一切正常。 在应用程序内部,我有一些CRUD页面,其中有一个数据表网格。要编辑记录,请单击该行上的“编辑”按钮,然后我使用jquery从Web api控制器中提取该特定记录的详细信息。

一切正常。我唯一的问题是,我可以在没有经过授权的用户的情况下,将/ api / [object] / [id]输入Web浏览器并获取数据。

当然,我不想拥有另一个授权过程,因此我可以使用api。相反,我希望能够使用现有的剃刀页面授权状态来授权使用api。

可能吗?

1 个答案:

答案 0 :(得分:0)

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

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