Asp.net core mvc 来自注入的IHttpContextAccessor的HttpContext null

Asp.net core mvc 来自注入的IHttpContextAccessor的HttpContext null,asp.net-core-mvc,asp.net-core,Asp.net Core Mvc,Asp.net Core,我有一个将自定义personService注入的授权处理程序。我已经通过默认的DI连接了处理程序和personService。person服务IhttpContextAccessor在我的应用程序中的其他地方工作正常,但当从授权处理程序调用它时,httpcontext始终为null 以下是AuthHandler: public class NoChildrenRequirement : AuthorizationHandler<NoChildrenRequirement>,

我有一个将自定义personService注入的授权处理程序。我已经通过默认的DI连接了处理程序和personService。person服务IhttpContextAccessor在我的应用程序中的其他地方工作正常,但当从授权处理程序调用它时,httpcontext始终为null

以下是AuthHandler:

     public class NoChildrenRequirement : AuthorizationHandler<NoChildrenRequirement>, IAuthorizationRequirement
{
    private readonly IPersonService _personService;

    public NoChildrenRequirement(IPersonService personService)
    {
        _personService = personService;
    }

    protected override void Handle(AuthorizationContext context, NoChildrenRequirement requirement)
    {
        var user = context.User;
        var identity = user.Identity;
        var isAuthenticated = identity.IsAuthenticated;

        var currentPerson = _personService.CurrentPerson();

        if (isAuthenticated && currentPerson != null && !currentPerson.IsAChild)
        {
            context.Succeed(requirement);
            return;
        }
        context.Fail();
    }
}
下面是我在startup中连接person服务的地方:

     services.AddTransient<NoChildrenRequirement>();
        services.Configure<AuthorizationOptions>(options =>
        {
            options.AddPolicy("NoChildren", policy => policy.Requirements.Add(
                services.BuildServiceProvider().GetRequiredService<NoChildrenRequirement>()));
        });
    services.AddTransient<IPersonService, PersonService>();
services.AddTransient();

如果我访问:IHttpContextAccessor\u context;当我从authhandler调用personservice时,所有其他依赖项都正确连接,甚至具体的HttpContextAccessor值也不为null,但HttpContextAccessor中的HttpContext为null。有什么想法吗

我还用ActionFilter尝试了这个方法,但同样失败。其他一切似乎都连接好了,工作正常。RC1-我没有看到RC2存在-v1.0.0-RC1-finalI已经尝试了我能想到的一切,但仍然没有成功。下一步你应该做的是在aspnet/Home上提交一个bug,并在github上放置一个显示该问题的回购项目。谢谢,我感谢你的帮助。
    services.AddTransient<IPersonService, PersonService>();