2013-01-16 46 views
1

我的Intranet Web应用程序我有一个内部简单的HTML网页,其中只显示一种形式,要求用户填写。我想自动捕获Windows域用户名和计算机名称,并将其与表单中收集的数据一起提交。如何获得用户的用户名在Windows网络

我能做到这一点在客户端? HTML? JavaScript的?还是我被迫做它在服务器端(我不知道该怎么办......还)

用户有XP和7台计算机和IE7,8。

BTW,我发现this article,但我不得不承认,我不知道在哪里的页面,你会输入“密码”。

下面是我使用的是不工作的代码。它调用JavaScript函数,并显示"Username="和下一行"Done.",但不显示用户名。

如果使用Chrome,它显示<%HttpContext.Current.User.Identity.Name%>

<html lang="en"> 
<head> 
    <script> 
     function get_user_Name() { 
      var username = '<%HttpContext.Current.User.Identity.Name%>'; 
      document.write("Username="); 
      document.write(username); 
      document.write(" <br> Done."); 
     } 
    </script> 

     <meta charset="utf-8" /> 
     <title>Training and Development Site</title> 
     <link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" /> 
    </head> 
    <body> 
     <a href="add-number-to-dnc.html">Add Phone Number to Dialer Do Not Call list</a> 
     <br><br> 
     <button type="button" onclick="get_user_Name()">Display User Name</button> 
    </body> 
</html> 

而且 - 我使用的WebMatrix/IIS7快递

+0

这是旧的,但万一有人来这里:'< %HttpContext.Current.User.Identity.Name%>是在呈现页面之前在服务器上评估的.net语法。很明显,只有在.net中运行时才会有效。 –

回答

0

在没有使用只有JavaScript IIS服务器则是不可能的。

但是:

如果您使用的是IIS,那么你可以使用下面的JS:

<script language="javascript"> 
    var username = '<%HttpContext.Current.User.Identity.Name %>'; 

</script> 

假设你已经在IIS中打开Windows身份验证为您的网站,那么C#的一面:

C#

public string user_Name 
{ 
    get 
    { 
     string x = Page.User.Identity.Name; 

     x = x.Replace("YOURDOMAIN\\", ""); 

     return x; 
    } 
} 

x = x.Replace("DOMAIN\\", "");带出DOMAIN sectionof用户acccount如NISSAN \ rmcdonough

+0

瑞恩,请原谅我的无知,但是,你把它放在页面上,你怎么称呼它?它是一个JavaScript函数(你可以意识到我刚刚开始......) – Amarundo

+0

这是一个C#函数,很抱歉,这个代码在IIS网站上运行?如果没有,你将无法使用这个或得到你想要的。 –

+0

我还没有达到服务器端。在我的问题中,我问过你是否可以在客户端使用JavaScript或其他方法来做到这一点。 – Amarundo

-1

捕获Windows域用户名和机器名,我觉得我们不能

相关问题