需求: 
      系统结构: B/S
      说明: 因为某公司要求数据的保密性要求非常严格,但是系统也不能架设为局域网,因为公司有很多分支机构,在不同的地方或者城市。现在要求系统只能在公司内部才能成功登录,在其他地方可以访问系统登录页面,但是登录不了!请问这个问题怎么处理呢?
      不知道大家有什么好的建议…………

解决方案 »

  1.   

    限制IP
    只有自己公司的IP才能登入
      

  2.   


    那让外部访问又有什么意义呢,当然BOSS让这么做,你就照做,
    我的方案就是限制IP段,公司的IP肯定是一个或几个IP段的,其他IP段访问的,全部拒绝登陆
      

  3.   

    每个用户都绑定一个mac地址,如果在外地使用该用户登陆mac不对,不就可以限制了吗?
      

  4.   

    可以考虑使用web加密狗,持有加密狗硬件的人才能访问
      

  5.   

    貌似vpn也可以实现的,我上家公司的内网就用的是vpn
      

  6.   


      这个方案我也是第一反应就想到了,可是获取客户端的MAC地址却成了一个辣手的问题!
       不知道你有没有获取客户端MAC地址的方法?
      

  7.   

    给你个建议.你可以添加你公司各个办事处的公网IP,在登陆的时候获取客户端的公网IP,然后确定是否允许登陆
      

  8.   

     因为这个系统是一个 管理系统CRM业务系统,所以不需要考虑客户端是否愿意接受某些设置。所以最终想了一种最简单的方法,使用 javascript脚步调用客户端一些东西来获取MAC地址。<HTML><HEAD><TITLE>WMI Scripting HTML</TITLE>
    <META http-equiv=Content-Type content="text/html; charset=gb2312">
    <SCRIPT language=JScript event="OnCompleted(hResult,pErrorObject, pAsyncContext)" for=foo>
     document.forms[0].txtMACAddr.value=unescape(MACAddr);
     document.forms[0].txtIPAddr.value=unescape(IPAddr);
     document.forms[0].txtDNSName.value=unescape(sDNSName);
     //document.formbar.submit();
      </SCRIPT><SCRIPT language=JScript event=OnObjectReady(objObject,objAsyncContext) for=foo>
       if(objObject.IPEnabled != null && objObject.IPEnabled != "undefined" && objObject.IPEnabled == true)
       {
        if(objObject.MACAddress != null && objObject.MACAddress != "undefined")
        MACAddr = objObject.MACAddress;
        if(objObject.IPEnabled && objObject.IPAddress(0) != null && objObject.IPAddress(0) != "undefined")
        IPAddr = objObject.IPAddress(0);
        if(objObject.DNSHostName != null && objObject.DNSHostName != "undefined")
        sDNSName = objObject.DNSHostName;
        }
      </SCRIPT><META content="MSHTML 6.00.2800.1106" name=GENERATOR></HEAD>
    <BODY>
    <OBJECT id=locator classid=CLSID:76A64158-CB41-11D1-8B02-00600806D9B6 VIEWASTEXT></OBJECT>
    <OBJECT id=foo classid=CLSID:75718C9A-F029-11d1-A1AC-00C04FB6C223></OBJECT>
    <SCRIPT language=JScript>
       var service = locator.ConnectServer();
       var MACAddr ;
       var IPAddr ;
       var DomainAddr;
       var sDNSName;
       service.Security_.ImpersonationLevel=3;
       service.InstancesOfAsync(foo, 'Win32_NetworkAdapterConfiguration');
       </SCRIPT><FORM id=formfoo name=formbar action=NICPost.asp method=post><INPUT value=00:05:5D:0E:C7:FA name=txtMACAddr> <INPUT value=192.168.0.2 name=txtIPAddr> <INPUT value=typ name=txtDNSName> </FORM></BODY></HTML>在客户端需要设置的为:  基础准备:
    1.把系统网站设置为可信任网站
       打开浏览器---》工具-----》Internet 选项-----》
            安全-----》可信站点 ----》把系统地址填写在 《将该网站添加到区域》-----》
            去掉最下面的 复选框的 勾(对该区域中的所有站点要求服务器验证https:) ---->点击添加----关闭
    2.设置可信任网站的安全级别
       在上一步的关闭之后-----》点击右下角的 自定义级别(请确保设置的是 可信站点的安全级别)
       ------》在设置 里面把 选项为: 对未标示为可安全秩序脚步的ActiveX 控件初始化执行并执行脚步  启用