我正在编写一个ASP.NET Core 1.1 Web应用程序。现在我正在尝试设置我的数据库,以便它可以使用但是我被踩到看似基本的东西......
我对Roles非常熟悉,而且对声明有点熟悉。我知道我可以创建一个ClaimTypes.Role类型的声明。但是当我打算用我的身份数据库与用户,角色等进行播种时,我不清楚这些项目:
例如,我想拥有Admin,Owner,Employee和Plain。
Admin
identity:full
Owner
identity:medium
billing:full
Employee
identity:low
billing:view
Plain
identity:low
顺便说一下,我想要创建的角色(每个角色都有一个或多个权限作为声明)应该有效用于授权(授权属性为控制器)。
答案 0 :(得分:0)
在我看来 - 如果您开始新项目仅使用声明。
使用RoleManager可能更容易理解和使用角色,但声明更通用,更灵活,更强大。
声明有点难以启动,但随后它们非常易于使用,尤其是在基于策略的自定义授权或授权处理程序中(例如,在基于资源的授权中)。
请阅读更多:
小例子如何使用声明创建自定义策略:
在Startup.cs
services.AddAuthorization(options =>
{
options.AddPolicy("Employee", p =>
{
p.RequireAuthenticatedUser();
p.RequireClaim(ClaimTypes.Role, "Employee");
p.Build();
});
});