【问题标题】:How to add authorization to RazorPages?如何向 RazorPages 添加授权?
【发布时间】:2018-04-03 13:30:30
【问题描述】:

我查看了当前的 official Microsoft Docs,但找不到任何正确的内容来涵盖如何处理 RazorPages 的授权。

我发现您可以像这样将AuthorizeAttribute 添加到PageModel

// using Microsoft.AspNetCore.Authorization

[Authorize]
public class IndexModel : PageModel
{
    ...
}

我不想对每一页都重复这个。有没有更好的办法?

【问题讨论】:

    标签: c# asp.net-core authorization asp.net-core-mvc razor-pages


    【解决方案1】:

    您可以在ConfigureServices 方法下配置授权。这是一个例子:

    services.AddMvc()
        .AddRazorPagesOptions(options =>
        {
            options.Conventions.AuthorizeFolder("/MembersOnly");
            options.Conventions.AuthorizePage("/Account/Logout");
    
            options.Conventions.AuthorizeFolder("/Pages/Admin", "Admins"); // with policy
            options.Conventions.AllowAnonymousToPage("/Pages/Admin/Login"); // excluded page
    
            options.Conventions.AllowAnonymousToFolder("/Public"); // just for completeness
        });
    

    上面的例子是从一个例子provided in the official repository扩展而来的。

    AuthrorizeFolder 将限制对整个文件夹的访问,而AuthorizePage 将根据单个页面限制访问。相应地,AllowAnonymousToFolderAllowAnonymousToPage 则相反。

    对于上述的具体文档,截至今天,文档仍在完成中。但是,您可以阅读它的进度并在此处跟踪它https://github.com/aspnet/Docs/issues/4281

    【讨论】:

      猜你喜欢
      • 2018-02-14
      • 2022-07-29
      • 1970-01-01
      • 1970-01-01
      • 2021-10-17
      • 1970-01-01
      • 1970-01-01
      • 2015-09-10
      • 2020-03-29
      相关资源
      最近更新 更多