ClaimRequirementFilter - 未调用OnAuthorization

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

我已经实现了ClaimRequirementFilter,但是没有调用OnAuthorization方法。下一行代码添加到Startup类的ConfigureServices方法中:

services.AddMvc(config => config.Filters.Add(typeof(ClaimRequirementFilter)));

我正在使用下一个命名空间:

using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Filters;
c# asp.net-core authorization
1个回答
0
投票

要解决与OnAuthorization相关的操作问题,请不要调用working demo

尝试激活“MyNamespace.ClaimRequirementFilter”时,无法解析“System.Security.Claims.Claim”类型的服务。

对于此错误,请定义您自己的Claim

  public class Claim
{
    public string Type { get; set; }
    public string Value { get; set; }
}

并在Startu.cs注册它

services.AddTransient<Claim>();
        services.AddMvc(c =>
                        {
                            c.Filters.Add(typeof(RequestLoggerActionFilter));
                            c.Filters.Add(typeof(ClaimRequirementFilter));
                        }).SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
© www.soinside.com 2019 - 2024. All rights reserved.