我应该在ASP.NET Web窗体应用程序中检索用户主体的位置?

时间:2013-08-01 05:22:56

标签: c# asp.net iprincipal

假设ASP.NET Web窗体应用程序中有一个相当普遍的用例,我应该在哪里检索我的主体+身份?

我知道通常有两种方法可以解决这个问题:

  • HttpContext.Current.User
  • Thread.CurrentPrincipal

我猜测在某些边缘情况下使用HttpContext将存在当前上下文不存在(即HttpContext.Current == null)的风险,但我经常看到使用此代码的代码而不是{{ 1}}(我认为它更安全,因为它 总是存在?)。

这是为什么?如果我挑选一个或另一个,我会对自己有什么影响?

1 个答案:

答案 0 :(得分:1)

在这里发誓我来了:)。

先生。汉塞尔曼已经在这里写了博客:http://www.hanselman.com/blog/SystemThreadingThreadCurrentPrincipalVsSystemWebHttpContextCurrentUserOrWhyFormsAuthenticationCanBeSubtle.aspx

基本思想是99%的时间......它们是相同的......尽管可以改变它们。