我不太完全理解这种情况,其中 AsyncLocal实例是在AuthenticationHandler中的某个点设置的,但当它被注入到constructor中时却没有到达控制器。
我已经使它类似于IHttpContextAccessor 的工作方式,但仍然相距甚远。但是,如果我从Middleware设置 AsyncLocal ,它就会到达控制器。另外,从AuthenticationHandler设置 HttpContext.Items 属性也可以正常工作。
问题: HttpContext 如何能够一直保留 Items 属性内容,并且 ASP.NET 运行时是否出于某种安全原因处理我的 DomainContextAccessor 捕获的 ExecutionContext(因为它的设置位置)?
我制作了一个示例应用程序来演示此用例。我真的很感激有人能阐明这个问题。