Razor Page匿名访问页面
Razor page可以通过以下方式开放页面匿名访问
1. [AllowAnonymous] attribute
[AllowAnonymous]
public class IndexModel : PageModel
{
private readonly ILogger<PrivacyModel> _logger;
public PrivacyModel(ILogger<PrivacyModel> logger)
{
_logger = logger;
}
public void OnGet()
{
}
}
2. AuthorizeFilter
builder.Services.AddRazorPages(options => { options.Conventions.AllowAnonymousToPage("/Index"); });
注意,如果两处的的设置不一致,那么只要其中一处设置了允许匿名访问,那么页面就可以匿名访,例如下面虽然 IndexModel 标记了 [Authorize]属性,但是Index页面仍然是可以匿名访问。
Authorization的设置应保持一致,或全部使用Attribute,或全部使用Filter,以避免带来不必要的麻烦
builder.Services.AddRazorPages(options => { options.Conventions.AllowAnonymousToPage("/Index"); }); ....... [Authorize] public class IndexModel : PageModel { private readonly ILogger<PrivacyModel> _logger; public PrivacyModel(ILogger<PrivacyModel> logger) { _logger = logger; } public void OnGet() { } }