从ASP.Net中的客户端访问信息

时间:2012-06-01 09:44:47

标签: asp.net-ajax client-side

我有一个ASP.Net网站,我希望能够在下面了解浏览我网站的人。

  1. 登录操作系统的用户名。
  2. 确切的操作系统(Os的类型 - Windos,Mac等:操作系统的版本)。
  3. Mac地址
  4. 客户机的IP地址。
  5. 我的网站是一个非常安全的网站,如果需要访问网站,我可以将用户提供给isntall activex和/或某些applet。

    请尽可能帮助我这样做。

1 个答案:

答案 0 :(得分:1)

1 - 已登录操作系统的用户名

这仅在您使用WIndows Forms作为身份验证方法时才可用,如果您使用的是表单,则可以通过登录帐户轻松获取其名称/用户

2 - 确切的操作系统(Os的类型 - Windos,Mac等:操作系统版本)。

我们称之为Browser Agent,您可以在javascript中使用

navigator.userAgent

3 - Mac地址

您只能获得自己服务器的Mac地址,即托管网站的地址,并且您可以获得服务器所拥有的网络设备数量,请记住 Mac地址不是唯一的

4 - 客户端计算机的IP地址。

只有使用javascript才能获得此功能,您需要使用您的编程语言,should use this来获取真实的IP地址:

string ip = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if(ip == "") { 
    ip = Request.ServerVariables["REMOTE_ADDR"]; 
}

总之,使用jQuery很简单:

<%
    string ip = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
    if(ip == "") { ip = Request.ServerVariables["REMOTE_ADDR"]; }
%>
<script type="text/javascript">

  $(function() {

    var ipAddress = '<% = ip %>',
        browser = navigator.userAgent,
        username = <% = Session["username"] %>;

    // now send the data back to your server, if using jQuery, just do:
    $.get("/login-user.aspx", { 
            ip: ipAddress, 
             browser: browser, 
             user: username 
          }, function(data) {
             // use this if you return anything as a response             
          });
   });    
</script>

然后,您可以使用http://UserAgentString.com/ API来解析您的用户代理字符串,或使用navigator对象从浏览器(或任何第三方库)获取您想要的内容......