如何获取登录用户名的客户端计算机

时间:2012-02-10 04:28:12

标签: c# asp.net

如何在客户端计算机的用户名

中获取LoggedIn

没有客户提供useid和密码...... (如果用户访问我需要获取的页面,他/她登录的用户ID)

我试过

string clientMachineName;
clientMachineName = (Dns.GetHostEntry(Request.ServerVariables["remote_addr"]).HostName);
Response.Write(clientMachineName);

4 个答案:

答案 0 :(得分:2)

如果您在域环境中,则可以启用Windows身份验证,这将允许用户绕过显式登录以支持NTLM身份验证。 IE和Chrome可以很好地开箱即用,FF有一个配置设置。

修改

如果您只关心支持ActiveX的浏览器/操作系统,那么您可以使用具有特定ActiveX权限的Javascript(来自here)来获取它:

<script type="text/javascript"> 
<!-- 
var WinNetwork = new ActiveXObject("WScript.Network"); 
alert(WinNetwork.UserName); 
//--> 
</script>

答案 1 :(得分:0)

试试这个 根据您的要求可能是它的工作

Request.ServerVariables["LOGON_USER"]

如果Request.ServerVariables(“LOGON_USER”)在ASP.NET中返回空字符串 Microsoft Guidline for that

答案 2 :(得分:0)

您可以使用 Request.LogonUserIdentity 来获取客户详细信息。

回复于(Request.LogonUserIdentity.Name);

答案 3 :(得分:0)

在某些情况下,似乎已为C#折旧ServerVariables

如果是这样,你需要这样做:

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

如果您真的想使用ServerVariables,请记住它们在C#中是 CaSe Sensitive 。正确的套管几乎总是 UPPER ,以下是它们的列表:

List of ServerVariables