Web读取序列号GUID

时间:2017-04-06 21:56:12

标签: c# jquery web guid

如何从网络应用程序中获取硬盘,主板等的唯一标识。我知道这是不可能直接做的。

我在一家拥有大量个人信息的公司工作,员工使用我在aspx.net开发的网络应用程序,当然还有登录和https,但由于政府的新规定,这已不够安全了。

因此,为了解决这个问题,公司决定我们必须对计算机进行某种白名单,这意味着每台计算机都必须使用基于计算机硬件的唯一密钥(GUID)来登录我们的Web应用程序。

但是如何从web(aspx.net,javascript,jquery)做到这一点,我可以制作某种App(或Winform程序),下次我们的员工尝试登录时,他们必须安装App /应用程序,然后aspx.net应用程序可以调用此程序并将GUID返回给登录服务(WCF-service),该怎么做?

我多年来一直在使用c#,Winforms,Silverlight,aspx.net,javasript,jquery等,但今年我必须找出如何开发Apps(跨平台),所以如果你有一个例子/链接除了那些提到的语言,这也没关系

1 个答案:

答案 0 :(得分:0)

我建议看看这个Retrieving Hardware Identifiers in C# with WMI

通过使用ManagementObjectManagementClass等类,您将能够获得计算机硬件的属性。

请注意,处理器ID本身并不是唯一的,您可能需要考虑将硬件ID组合作为唯一密钥。

例如:

    /// <summary>
    /// Return processorId from first CPU in machine
    /// </summary>
    /// <returns>[string] ProcessorId</returns>
    public string GetCPUId()
    {
        string cpuInfo =  String.Empty;
        string temp=String.Empty;
        ManagementClass mc = new ManagementClass("Win32_Processor");
        ManagementObjectCollection moc = mc.GetInstances();
        foreach(ManagementObject mo in moc)
        {
            if(cpuInfo==String.Empty) 
            {// only return cpuInfo from first CPU
                cpuInfo = mo.Properties["ProcessorId"].Value.ToString();
            }             
        }
        return cpuInfo;
    }

然后,您可以创建自己的浏览器应用程序来访问公司的网站。获取这些ID并将其传递以用于安全目的。