我应该在 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的代码(我认为这更安全,因为它应该始终存在?

这是为什么呢?如果我选择一个或另一个,我会让自己陷入什么影响?

我应该在 ASP.NET Web 窗体应用中的何处检索用户主体

代表在这里嫖娼我来:)

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

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