2012-02-10 134 views
0

我怎样才能获得的loggedIn在客户机我怎样才能在客户端计算机的用户名登录

的用户名,而不客户提供USEID和密码... (wjen用户访问的页面我需要获得在该用户ID,他/她的loggedIn)

我试图

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

你的代码读取机器名和你询问登录用户名,这是一个你有兴趣? – V4Vendetta 2012-02-10 04:32:08

+0

@ V4Vendetta我需要读客户端机器当客户端访问我的页面时登录用户名.. – user1201228 2012-02-10 04:43:45

+0

您是否正在寻找一种方法在LAN或WAN环境中执行此操作?你想要做什么操作系统?你需要支持哪些浏览器? – 2012-02-10 04:53:27

回答

2

如果您在域环境中,你可以启用Windows身份验证,这将允许用户绕过明确赞成登录是的NTLM认证。 IE和Chrome可以很好地工作,FF有一个配置设置。

编辑

如果你只关心浏览器/操作系统支持ActiveX,那么你可以将它使用JavaScript与特定ActiveX控件的权限(从here)获得:

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

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

Request.ServerVariables["LOGON_USER"] 

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

+0

Request.ServerVariables [“LOGON_USER”]返回空sting .. bz页面未通过验证。 – user1201228 2012-02-10 04:49:02

0

您可以使用Request.LogonUserIdentity用于获取客户的详细资料。

Response.Write(Request.LogonUserIdentity.Name);

+1

Request.LogonUserIdentity只有在用户通过网站身份验证时才有效。 OP正在寻找一种方法来获取用户在客户端计算机上的用户名,而不需要凭证进行身份验证。 – 2012-02-10 05:21:58

0

在某些情况下,似乎ServerVariables已针对C#折旧。

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

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

如果你真的想用ServerVariables,记住他们是区分大小写在C#。正确的外壳几乎总是UPPER,这里是他们的列表:

List of ServerVariables

相关问题