【问题标题】:Is it possible to get client machine OS user name in asp.net web application是否可以在 asp.net Web 应用程序中获取客户端计算机操作系统用户名
【发布时间】:2021-12-23 05:49:48
【问题描述】:

我需要在本地获取服务器(客户端 PC)操作系统用户名(不是机器名称)。我找到了代码

Session ["OS_USER"] = Environment.UserName;

但是当我托管 IIS Environment.UserName 时,它会捕获 IIS 用户名。

【问题讨论】:

  • 您无法获取客户端计算机的操作系统级别详细信息...为什么要这样做?
  • 这是一个教育目的。如果操作系统是 windows,那么我需要获取 windows 用户名。
  • 您无法使用服务器代码获取客户端计算机的 Windows 用户名。您可以使用 javascript 和 ActiveX。但大多数浏览器不允许 ActiveX 执行。如果您的 Web 应用程序使用 Windows 身份验证运行,那么您可以获得登录的用户详细信息。但是,当您的应用程序仅由属于 Active Directory 的用户在内部使用时,Windows 身份验证才有意义。对于面向公众的 Web 应用程序,这是不可能的。
  • 我明白了。谢谢。

标签: c# asp.net .net


【解决方案1】:

看看How do I get the current username in .NET using C#?

对于 Windows,以下代码可能有效:

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

【讨论】:

  • 我也试过这个。但是当我托管 IIS 时,它会捕获 IIS 用户名。
  • 如果用户被识别,可以尝试使用User.Identity.Name。见docs.microsoft.com/en-us/dotnet/api/…
  • 我得到了一些信息。谢谢!
猜你喜欢
  • 2013-10-16
  • 1970-01-01
  • 1970-01-01
  • 2013-09-03
  • 1970-01-01
  • 1970-01-01
  • 2018-06-12
  • 2020-08-25
  • 1970-01-01
相关资源
最近更新 更多