如何使用 Razor Pages 在区域级别指定 "Authorize"?

How to Specify the "Authorize" at the Area level with Razor Pages?

我正在使用简单的 cookie 测试 WebApp 身份验证。该应用程序有 2 个区域:Public 和内部(请参阅本 post 末尾的区域结构)。用户访问“内部”区域下的所有页面都需要登录。

程序说明

该应用程序是使用带有 Razor 页面(没有 MVC)的 .NET 6 实现的。在 program.cs 文件中,我尝试在“内部”区域的“区域”级别指定“授权”(参见此处的代码段)。测试应用程序时出现 HTML 404.15 错误(请参阅下面附图中的 HTML 错误)。

看起来“AuthorizeAreaFolder”与内部区域内的任何文件夹名称都能正常工作。 有没有办法在区域级别设置“授权”?

配置授权

builder.Services.AddRazorPages(options =>
{
    options.Conventions.AuthorizeAreaFolder("Internal","/");
});

HTML 错误

WEBAPP 领域

确保匿名用户可以访问您的登录页面。实现此目的的一种简单方法是将 AllowAnonymous 属性添加到相关页面的 PageModel class 中,例如(假设登录页面称为 Signin):

[AllowAnonymous]
public class SigninModel : PageModel