Web API 2在某些情况下不设置Thread.CurrentPrincipal

时间:2015-08-25 04:31:17

标签: asp.net-web-api2

在尝试调试为什么自定义身份验证过滤器在我们的内存中集成测试中不起作用时,我发现HttpRequestContext的不同子类设置Principal的方式有所不同。

其中大多数(OwinHttpRequestContextSelfHostHttpRequestContextWebHostHttpRequestContext)都设置了Thread.Principal

WebHostHttpRequestContext.cs:

public override IPrincipal Principal
        {
            get
            {
                return _contextBase.User;
            }
            set
            {
                _contextBase.User = value;
                Thread.CurrentPrincipal = value;
            }
        }

但有些人根本没有设置它(BatchHttpRequestContextRequestBackedHttpRequestContext)。

这是一个设计决定,我需要重写部分应用程序以不使用Thread.Principal)还是需要/将要修复的错误?

0 个答案:

没有答案