假设在 ASP.NET Web 窗体应用程序中有一个相当普遍的用例,我应该在哪里检索我的主体 + 身份?
我知道通常有两种方法可以解决它:
HttpContext.Current.User
Thread.CurrentPrincipal
我推测 usingHttpContext
会在某些边缘情况下运行当前上下文不存在(即HttpContext.Current == null
)的风险,但我更经常看到使用它而不是Thread.CurrentPrincipal
(我认为它更安全,因为它应该始终存在?)的代码。
为什么是这样?如果我选择其中一个,我会让自己陷入什么影响?