ClaimRequirementFilter-不调用OnAuthorization

时间:2018-09-13 13:15:22

标签: c# asp.net-core authorization

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

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

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

using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Filters;

1 个答案:

答案 0 :(得分: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);