【问题标题】:HTTPcontext not returning correct resultHTTPcontext 没有返回正确的结果
【发布时间】:2014-12-01 07:05:04
【问题描述】:

我正在尝试使用 HTTPcontext 对象获取当前用户名

string username=HttpContext.Current.User.Identity.Name

但我观察到奇怪的行为,即当我第一次加载时,我的用户名是 NT AUTHORITY\IUSR 但是当我第二次或第三次加载时,我得到了正确的登录用户名。无法弄清楚为什么在第一次运行时没有返回正确的用户名。

【问题讨论】:

  • 您在哪里查看用户名?用什么方法。
  • 加载应用程序后,该方法中有一个 fetchdata() 方法,我正在获取登录的用户名。
  • ASP.net 或 ASP.net MVC。你写方法 global.asax 吗?
  • C#,它有一个MVC模式
  • 尝试使用 System.Threading.Thread.CurrentPrincipal.Identity.Name。看看 this 和 httpcontext 是否都返回相同的结果

标签: c# http httpcontext


【解决方案1】:

这实际上是一个名为ASP.NET Impersonation功能。已为您的应用程序启用。

在这种情况下,ASP.NET 模拟 IIS 传递给它的令牌,该令牌可以是经过身份验证的用户,也可以是匿名 Internet 用户帐户 (IUSR_machinename)。这正是您的应用程序发生的事情。 您可以在MSDN 阅读有关模拟以及如何控制它的信息。

【讨论】:

    猜你喜欢
    • 2023-03-14
    • 2014-09-13
    • 2012-08-01
    • 2014-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-09
    • 2017-11-24
    相关资源
    最近更新 更多