2012-01-13 243 views
0

我正在开发一个asp.net项目,它将在局域网中运行。
此局域网中的每个用户都有自己的系统用户名。
此应用程序将仅在Internet Explorer浏览器上运行。
我想用其用户名识别每个客户端。
有没有什么办法可以使用javascript来做到这一点?如何从Internet Explorer浏览器使用JavaScript获取系统(Windows)用户名?

+0

你提到你正在使用ASP.NET。如果解决方案在服务器端代码而不是Javascript中,解决方案是否适用?此外,您在网站上使用哪种类型的身份验证? – JohnFx 2012-01-13 22:45:29

+0

为什么不使用HttpContext?如果它在asp.net中会更容易? – Andres 2012-01-13 22:46:26

回答

1

理论上这应该适用于Internet Explorer,但如果浏览器的安全设置被锁定,则可能会失败。

var wshshell=new ActiveXObject("wscript.shell"); 
var username=wshshell.ExpandEnvironmentStrings("%username%"); 
alert('hello, ' + username); 

另外,时它isn't guaranteed至100%匹配他们的实际AD登录名。

如果您使用的是ASP.NET,如果您使用基于表单的身份验证,则可以在服务器端脚本中使用Request.ServerVariables("AUTH_USER")或其他技术更可靠地完成此操作。

+0

我想识别没有请求他们的用户名的用户。我使用Windows身份验证和Request.ServerVariables(“AUTH_USER”)只有当我从同一台机器使用iis浏览网站时才起作用。我尝试了javascript命令,当我将ie安全级别设置为低,并将activex设置为“启用”(从“提示”)时,它们工作正常。 – 2012-01-14 18:59:16

相关问题