如何使用 c# 或 jQuery 或 Javascript 获取客户端系统/PC 域名和 PC 名称
Posted
技术标签:
【中文标题】如何使用 c# 或 jQuery 或 Javascript 获取客户端系统/PC 域名和 PC 名称【英文标题】:How to get Client System/PC Domain and PC Name using c# or jQuery or Javascript 【发布时间】:2020-05-03 22:51:44 【问题描述】:IPGlobalProperties properties = IPGlobalProperties.GetIPGlobalProperties();
Environment.UserDomainName;
properties.DomainName;
System.Web.HttpContext.Current.Request.LogonUserIdentity.Name
System.Security.Principal.WindowsIdentity.GetCurrent().Name;
我在 C# 中尝试了上述属性,但没有运气。 它在本地机器上运行良好。
我的问题: 我在 abc.com 域中托管了一个 Web 应用程序,并且 url 是 abc.com,当我在域外或从其他一些外部域计算机(从客户端系统)访问此站点时,如何使用 c# 获取他们的(客户端)系统域名、Jquery 或 javascript。
c#、jQuery、JS 中的任何解决方案? 提前致谢。
【问题讨论】:
no luck
是什么意思?客户端计算机可以位于防火墙、代理和 ISP 等网络层的后面。因此,您只能从网络外部获得第一个联系人的 IP ......这不会为您提供用户的详细信息登录到客户端计算机或客户端计算机连接到的域...
你能解释一下为什么你需要知道登录用户的详细信息和客户端网络的域吗?
我需要通过从计算机属性中读取域来验证用户是否在域中。
【参考方案1】:
基于这个关于 JS 解决方案的答案:JavaScript - How to get the name of the current user
我可以添加以下内容:
-
浏览器是一种沙盒,没有用户权限是无法访问Win资源的。
如果您的用户登录到系统,那么它已经在您的域中。
【讨论】:
c# .net 中是否有提供客户端用户域的解决方案? 默认情况下,ASP.NET 模拟被禁用。如果启用模拟,您的 ASP.NET 应用程序将在经过身份验证的用户的安全上下文中运行。你可以在 IIS 中启用 Windows Authentication,impersonation on。要获取数据,请使用以下代码:richhewlett.com/2011/02/15/getting-a-users-username-in-asp-net【参考方案2】:试试这样,这样你会得到主机名
string ipAddress = Request.UserHostAddress;
IPHostEntry entry = Dns.GetHostEntry(ipAddress);
string domainName = entry.HostName;
and for computer name you can do like this
var comutername= HttpContext.Current.Server.MachineName
在您的 javascript 中,您将通过使用 ActiveXObject 来获取计算机名称
function GetClientInfo()
var net = new ActiveXObject("wscript.network");
alert("Computer Name : " + net.ComputerName + "\n User Name : " + net.UserName + "\n Domain Name :"
+ net.UserDomain);
【讨论】:
@MuhammadMaazSheikh,是的...但是您可以在 c# 中获取域和计算机名称,然后通过 ajax 将其传递到您的 javascript..right.. 我已经提到我在同一个域内的本地部署中获得了正确的域和计算机名称,但是当我在不同域中部署我的应用程序时,c# 无法返回正在访问应用程序的客户端域。以上是关于如何使用 c# 或 jQuery 或 Javascript 获取客户端系统/PC 域名和 PC 名称的主要内容,如果未能解决你的问题,请参考以下文章
如何将可关闭的文本标签添加到 Textarea Kendo | jQuery