可以尝试使用Policy来代替Roles属性,并在代码中自定义需要验证的条件。具体实现方法如下:
1.定义一个名为“CustomAuthorizationPolicy”的类,继承AuthorizationPolicy类,重写方法“AsyncAuthorize”:
public class CustomAuthorizationPolicy : AuthorizationPolicy
{
public override async Task
2.在Startup.cs文件中的ConfigureServices方法中注入这个自定义的Policy,并将默认的Policy替换为自定义的:
services.AddScoped
3.自定义一个名为“MyRequirement”的类,继承IAuthorizationRequirement接口,并在其中编写你需要验证的逻辑:
public class MyRequirement : IAuthorizationRequirement { // 自定义验证逻辑 }
4.在需要验证的Controller或者Action上,使用Policy特性来指定使用自定义Policy进行授权:
[Authorize(Policy = "CustomPolicy")] public class MyController : Controller { // Controller的代码 }
通过上述步骤,可以实现在AuthorizeView中自定义验证逻辑,并且可以加入更多的条件进行验证。