我应该在 ASP.NET Web 窗体应用中的何处检索用户主体
本文关键字:何处 检索 用户主体 应用 窗体 ASP NET Web 我应该 | 更新日期: 2023-09-27 18:25:48
假设在 ASP.NET Web 窗体应用程序中有一个相当通用的用例,我应该在哪里检索我的主体 + 标识?
我知道通常有两种方法可以做到这一点:
-
HttpContext.Current.User
-
Thread.CurrentPrincipal
我推测使用HttpContext
将冒当前上下文不存在的风险(即 HttpContext.Current == null
(在某些边缘情况下,但我更经常看到使用它而不是Thread.CurrentPrincipal
的代码(我认为这更安全,因为它应该始终存在?
这是为什么呢?如果我选择一个或另一个,我会让自己陷入什么影响?
代表在这里嫖娼我来:)
汉塞尔曼先生已经在这里写过这个博客:http://www.hanselman.com/blog/SystemThreadingThreadCurrentPrincipalVsSystemWebHttpContextCurrentUserOrWhyFormsAuthenticationCanBeSubtle.aspx
基本思想是99%的时间......它们是相同的......尽管可以改变它们。