【问题标题】:asp.net web app returning IIS info instead of current user credentialsasp.net Web 应用程序返回 IIS 信息而不是当前用户凭据
【发布时间】:2013-02-13 16:33:49
【问题描述】:

我正在使用自定义身份验证的 asp.net Web 应用程序。我编写了一个快速测试应用程序来发布在我们的网络服务器上,以确保我可以从用户那里获取必要的凭据。我正在尝试使用以下代码行获取当前登录的用户(我以前做过):

   string username=System.Security.Principal.WindowsIdentity.GetCurrent().Name.ToString();

这通常返回格式为“域\用户”的字符串。我得到的是这样的:IIS APPPOOL\ASP.NET v4.0

我确定我遗漏了一些简单的东西,IIS 中是否有需要更改的设置?还是有其他方法来获取用户名?

【问题讨论】:

  • 您的 web.config 中有模拟设置吗?
  • @Dillie-O 我目前没有设置模拟。我认为应该禁用它,因为 asp 应用程序将处理身份验证。我确实尝试启用它,并且 NT AUTHORITY\IUSR 已返回给我。
  • 由于您使用的是自定义身份验证,您是否有适当的代码来设置 IPrincipal 详细信息?没有它,我相信 Security.Principal 类默认为你所拥有的
  • @Dillie-O 看来这就是我的问题所在!我忘记了在我的测试中为此编码。谢谢!
  • 不是问题。我会设置并回答,以便其他人可能会发现它有帮助

标签: asp.net webserver iis-6


【解决方案1】:

由于您使用的是自定义/表单身份验证,因此听起来您在用户通过身份验证后没有设置 IPrinicipal 详细信息。

您可以follow this documentation(查找“创建表单身份验证 Cookie”部分)了解如何在您的应用中设置此代码。这并不像看起来那么难。

【讨论】:

    【解决方案2】:

    试试这个:

    Page.User.Identity.Name
    

    【讨论】:

      猜你喜欢
      • 2012-01-02
      • 1970-01-01
      • 2020-02-09
      • 2021-10-07
      • 2011-03-09
      • 2016-10-08
      • 1970-01-01
      • 2017-12-01
      • 1970-01-01
      相关资源
      最近更新 更多