假设ASP.NET Web窗体应用程序中有一个相当普遍的用例,我应该在哪里检索我的主体+身份?
我知道通常有两种方法可以解决这个问题:
HttpContext.Current.User
Thread.CurrentPrincipal
我猜测在某些边缘情况下使用HttpContext
将存在当前上下文不存在(即HttpContext.Current == null
)的风险,但我经常看到使用此代码的代码而不是{{ 1}}(我认为它更安全,因为它 总是存在?)。
这是为什么?如果我挑选一个或另一个,我会对自己有什么影响?
答案 0 :(得分:1)
在这里发誓我来了:)。
先生。汉塞尔曼已经在这里写了博客:http://www.hanselman.com/blog/SystemThreadingThreadCurrentPrincipalVsSystemWebHttpContextCurrentUserOrWhyFormsAuthenticationCanBeSubtle.aspx
基本思想是99%的时间......它们是相同的......尽管可以改变它们。