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