如何根据用户角色授予网站所有页面的访问权限?

问题描述 投票:0回答:0

我的要求是管理员用户可以授权其他用户访问站点中的页面数。

用户和他们分配的页面存储在数据库中,格式如下。

Id UserId ClaimType 页面

1 1 测试 Test.cshtml

我正在尝试在 asp.net 核心项目中使用基于声明的授权来实现这一点。

但问题是它们超过 150 页,因此需要在“program.cs”文件中创建 150 个单独的策略。

还有其他更好的方法来实现这个目标吗?

只有指定的用户才能访问特定控制器中的相关操作方法。

我为每个页面实施了基于声明的授权。

程序.cs

builder.Services.AddAuthorization(options => 
{
    options.AddPolicy("TestPolicy", policy=> policy.RequireClaim("Test"));
    options.AddPolicy("SamplePolicy", policy => policy.RequireClaim("Sample"));
    
    /* For each pages defined separate policies in program.cs and more then 200 pages available in project */

});

控制器

[HttpGet]
[Authorize(Policy = "TestPolicy")]
public async Task<IActionResult> Test()
{
    
    return View();
}
asp.net-core authorization claims-based-identity claims claims-authentication
© www.soinside.com 2019 - 2024. All rights reserved.