是因为ASP Core 2.2中的授权机制发生了变化。在ASP Core 2.2之前,可以通过在控制器或动作方法上使用[Authorize(Roles = "RoleName")]属性来限制只有具有特定角色的用户才能访问该控制器或动作方法。
然而,在ASP Core 2.2中,授权角色控制器属性不再直接起作用。相反,需要使用策略授权来实现角色控制。策略授权允许开发人员定义自定义的授权策略,并在控制器或动作方法上使用[Authorize(Policy = "PolicyName")]属性来限制访问。
要在ASP Core 2.2中实现授权角色控制,可以按照以下步骤进行操作:
services.AddAuthorization(options =>
{
options.AddPolicy("RolePolicy", policy =>
policy.RequireRole("RoleName"));
});
这里的"RoleName"是指要求具有的角色名称。
[Authorize(Policy = "RolePolicy")]
public class MyController : Controller
{
// 控制器的代码
}
这样,只有具有"RoleName"角色的用户才能访问MyController控制器。
推荐的腾讯云相关产品和产品介绍链接地址:
请注意,以上答案仅针对ASP Core 2.2版本,不适用于其他版本。如果使用其他版本的ASP Core,请参考相应版本的官方文档或开发者指南进行操作。
领取专属 10元无门槛券
手把手带您无忧上云