日期:2014-05-20  浏览次数:20446 次

通过下面的几种办法,为什么得到的全部服务器的硬件ID,有没有办法得到客户端的硬件ID,或你们是如何用户认证的呢?
C# code

 protected void Button1_Click(object sender, EventArgs e)
        {
            Label1.Text = GetCpuId() + "||" + GetDiskID()+ "||" +
                          GetDiskVolumeSerialNumber() + "||" + getCpu2();
        }

     
        /// <summary>
        /// 查询CPU编号
        /// </summary>
        public string GetCpuId()
        {
            ManagementClass mClass = new ManagementClass("Win32_Processor");
            ManagementObjectCollection moc = mClass.GetInstances();
            string cpuId = null;
            foreach (ManagementObject mo in moc)
            {
                cpuId = mo.Properties["ProcessorId"].Value.ToString();
                break;
            }
            return cpuId;
        }

        public string GetDiskID()
        {
            String HDid = null;
            ManagementClass cimobject1 = new ManagementClass("Win32_DiskDrive");
            ManagementObjectCollection moc1 = cimobject1.GetInstances();
            foreach (ManagementObject mo in moc1)
            {
                HDid = mo.Properties["Model"].Value as string;
            }
            return HDid;
        }

        public string GetDiskVolumeSerialNumber()
        {
            ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
            ManagementObject disk = new ManagementObject("win32_logicaldisk.deviceid=\"c:\"");
            disk.Get();
            return disk.GetPropertyValue("VolumeSerialNumber").ToString();

        }

        public string getCpu2()
        {
            string strCpu = null;
            ManagementClass myCpu = new ManagementClass("win32_Processor");
            ManagementObjectCollection myCpuConnection = myCpu.GetInstances();
            foreach (ManagementObject myObject in myCpuConnection)
            {
                strCpu = myObject.Properties["Processorid"].Value.ToString();
                break;
            } return strCpu;
        }





我们在做一个卡号对应一台电脑,如果用JS取网卡的MAC,客户端的安全设置太高,activeX就不行,请教大家你们是如何取客户端硬件ID的呢?





------解决方案--------------------
我只进来帮你顶,顺便几天后进来学习一下解决问题的技术 *O*
------解决方案--------------------
不可能 谢谢合作
------解决方案--------------------
确切的说 在客户端允许Ax的情况下 是可以的 
但是因为是XXX情况下,所以——不行
------解决方案--------------------
结贴律 100.15% 怎么出来的

------解决方案--------------------
只能用javascript和ActiveX的方式。目前没有更好的解决方案。
我们做用户认证,是自己用C++写一个客户端启动程序,mac地址验证通过后,自动打开浏览器和登录页。