我知道,在使用异步/等待时,如果我们离开ASP.NET同步上下文并返回到它,ASP.NET将设置Thread.CurrentPrincipal = HttpContext.Current.User
。但是,当我们进入异步调用链时会发生什么呢?我相信各种情况都是一种方式。 HTTPContext
除了对于用户而言是静态的。
Thread.CurrentPrincipal
和等待时的上下文? Thread.CurrentPrincipal = HttpContext.Current.User
吗?Thread.CurrentPrincipal
,在调用堆栈中会看到吗?
ThreadPool
线程上进行的?Thread.CurrentPrincipal
,是否必须在每个连续中设置Thread.CurrentPrincipal
?我正在使用.Net 4.6.1开发现有的ASP.NET项目。在调用堆栈中,第3方组件离开了ASP.NET上下文。当第三方返回时,我需要HttpContext.Current.User
中的值并将其设置为Thread.CurrentPrincipal
,以便ASP.NET上下文在返回时将其重置。在异步链的开始,我恢复了.ConfigureAwait(false)
和HttpContext.Current.User。但是我想将其进一步下移。我没有使用foo
。