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()
  {
  }
}

 

posted @ 2023-05-31 00:30  TigerLu  阅读(37)  评论(0编辑  收藏  举报