如何从网络应用程序中获取硬盘,主板等的唯一标识。我知道这是不可能直接做的。
我在一家拥有大量个人信息的公司工作,员工使用我在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(跨平台),所以如果你有一个例子/链接除了那些提到的语言,这也没关系
答案 0 :(得分:0)
我建议看看这个Retrieving Hardware Identifiers in C# with WMI。
通过使用ManagementObject
和ManagementClass
等类,您将能够获得计算机硬件的属性。
请注意,处理器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并将其传递以用于安全目的。