ASP.NET Core 2.1:Razor Pages - 基于角色的授权不起作用

艾伦

我的 Razor Pages 应用程序配置如下。Startup.cs 包含:

public void ConfigureServices(IServiceCollection services)
{
    services.Configure<CookiePolicyOptions>(options =>
    {
        // This lambda determines whether user consent for non-essential cookies is needed for a given request.
        options.CheckConsentNeeded = context => true;
        options.MinimumSameSitePolicy = SameSiteMode.None;
    });

    services.AddDbContext<ApplicationDbContext>(options =>
        options.UseSqlite(
            Configuration.GetConnectionString("DefaultConnection")));

    services.AddDefaultIdentity<IdentityUser>()
        .AddRoles<IdentityRole>()
        .AddEntityFrameworkStores<ApplicationDbContext>();
    
    services.AddAuthorization(options =>
    {
        options.AddPolicy("RequireAdminRole", policy => 
            policy.RequireAuthenticatedUser().RequireRole("Admin"));
    });

    services.AddMvc()
        .AddRazorPagesOptions(options =>
        {
            options.Conventions.AuthorizePage("/About", "RequireAdminRole");
        })
        .SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
}

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
        app.UseDatabaseErrorPage();
    }
    else
    {
        app.UseExceptionHandler("/Error");
        app.UseHsts();
    }

    app.UseHttpsRedirection();
    app.UseStaticFiles();
    app.UseCookiePolicy();
    app.UseAuthentication();
    app.UseMvc();
}

我有一个具有“管理员”角色的用户。当用户登录并访问“关于”页面时,我得到以下信息:

拒绝访问

您无权访问此资源。

我究竟做错了什么?

更新

如果我页面方法中删除AuthorizePage和使用,然后GetUsersInRoleAsync("Admin")About.cshtml.cs页面中OnGet输出UserName属性,About.cshtml则显示管理员用户。所以,不知道为什么AuthorizePage不工作。

2017 年 5 月 29 日更新

我的源代码在这个Github 资源库中

艾伦

我设法找到了解决方案:

services.AddIdentity<IdentityUser, IdentityRole>()
.AddDefaultUI()
.AddDefaultTokenProviders()
.AddEntityFrameworkStores<ApplicationDbContext>();

我认为它的工作原理如下:

  • AddItentity - 设置身份。
  • AddDefaultUI - 使用新的 Razor 类库 UI。
  • AddDefaultTokenProviders - 需要两因素身份验证。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

ASP.NET Core 3.1 Web API基于角色的授权不起作用

来自分类Dev

为什么对Decimal的验证对ASP.NET Core 3.1 Razor Pages不起作用?

来自分类Dev

Razor Pages Asp.Net-Core安装FullCalendar

来自分类Dev

ASP net Core Razor Pages - EF 和视图的拆分模型

来自分类Dev

部分页面的类库标签帮助器在ASP.NET Core 3.1 Razor Pages应用程序中不起作用

来自分类Dev

重命名ASP.NET Core Razor Pages中的Pages / Shared目录

来自分类Dev

ASP.NET MVC C#Razor SQL 1 of 2几乎相同的更新查询不起作用

来自分类Dev

ASP Core Razor Pages 双向绑定

来自分类Dev

在ASP .Net Core 2.2中添加JWT令牌后,授权不起作用

来自分类Dev

JWT承载令牌授权不起作用ASP Net Core Web API

来自分类Dev

自定义授权筛选器在ASP.NET Core 3中不起作用

来自分类Dev

ASP.NET Core中的NTLM授权WCF不起作用

来自分类Dev

授权在 ASP.NET Core 2.1 的 Signalr 中不起作用

来自分类Dev

部署站点上的Razor Pages / ASP.NET CORE路由问题(404错误)

来自分类Dev

ASP.Net Core Razor Pages应用程序未绑定到模型中的属性

来自分类Dev

如何通过Razor Pages扩展ASP.NET Core MVC项目?

来自分类Dev

如何在Razor Pages ASP.NET Core中的布局内访问HostingEnvironment?

来自分类Dev

创建一个空的 ASP.NET Core 2.0 Razor Pages 项目

来自分类Dev

ASP.NET Core 2 razor 页面中的文件上传

来自分类Dev

带参数的 ASP.Net Core 2 Razor AJAX GET?

来自分类Dev

授权角色/策略属性在.Net Core 3中不起作用

来自分类Dev

尽管正确设置,但 ASP.NET Core 2 中的 CORS 不起作用

来自分类Dev

基于动作的重定向ASP.Net Core Razor

来自分类Dev

具有身份和ExternalLogin的ASP.NET Core 3.1中基于角色的授权

来自分类Dev

asp.net core 2.0 windows基于角色的授权总是返回403

来自分类Dev

ASP.NET Core 身份的 IdentityServer4 基于角色的授权 = 拒绝访问

来自分类Dev

在 ASP.NET Core Razor Pages 中,如何获取页面上下文之外的页面的视图引擎路径?

来自分类Dev

ASP.NET Core MetaDataType属性不起作用

来自分类Dev

Bootstrap Carousel在ASP.NET Core中不起作用

Related 相关文章

  1. 1

    ASP.NET Core 3.1 Web API基于角色的授权不起作用

  2. 2

    为什么对Decimal的验证对ASP.NET Core 3.1 Razor Pages不起作用?

  3. 3

    Razor Pages Asp.Net-Core安装FullCalendar

  4. 4

    ASP net Core Razor Pages - EF 和视图的拆分模型

  5. 5

    部分页面的类库标签帮助器在ASP.NET Core 3.1 Razor Pages应用程序中不起作用

  6. 6

    重命名ASP.NET Core Razor Pages中的Pages / Shared目录

  7. 7

    ASP.NET MVC C#Razor SQL 1 of 2几乎相同的更新查询不起作用

  8. 8

    ASP Core Razor Pages 双向绑定

  9. 9

    在ASP .Net Core 2.2中添加JWT令牌后,授权不起作用

  10. 10

    JWT承载令牌授权不起作用ASP Net Core Web API

  11. 11

    自定义授权筛选器在ASP.NET Core 3中不起作用

  12. 12

    ASP.NET Core中的NTLM授权WCF不起作用

  13. 13

    授权在 ASP.NET Core 2.1 的 Signalr 中不起作用

  14. 14

    部署站点上的Razor Pages / ASP.NET CORE路由问题(404错误)

  15. 15

    ASP.Net Core Razor Pages应用程序未绑定到模型中的属性

  16. 16

    如何通过Razor Pages扩展ASP.NET Core MVC项目?

  17. 17

    如何在Razor Pages ASP.NET Core中的布局内访问HostingEnvironment?

  18. 18

    创建一个空的 ASP.NET Core 2.0 Razor Pages 项目

  19. 19

    ASP.NET Core 2 razor 页面中的文件上传

  20. 20

    带参数的 ASP.Net Core 2 Razor AJAX GET?

  21. 21

    授权角色/策略属性在.Net Core 3中不起作用

  22. 22

    尽管正确设置,但 ASP.NET Core 2 中的 CORS 不起作用

  23. 23

    基于动作的重定向ASP.Net Core Razor

  24. 24

    具有身份和ExternalLogin的ASP.NET Core 3.1中基于角色的授权

  25. 25

    asp.net core 2.0 windows基于角色的授权总是返回403

  26. 26

    ASP.NET Core 身份的 IdentityServer4 基于角色的授权 = 拒绝访问

  27. 27

    在 ASP.NET Core Razor Pages 中,如何获取页面上下文之外的页面的视图引擎路径?

  28. 28

    ASP.NET Core MetaDataType属性不起作用

  29. 29

    Bootstrap Carousel在ASP.NET Core中不起作用

热门标签

归档