我已经实现了ClaimRequirementFilter,但是没有调用OnAuthorization方法。下一行代码添加到Startup类的ConfigureServices方法中:
services.AddMvc(config => config.Filters.Add(typeof(ClaimRequirementFilter)));
我正在使用下一个命名空间:
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Filters;
要解决与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);