public void GetMachineKey() { var cpuInfo = string.Empty; var mc = new ManagementClass("win32_processor"); foreach (var o in mc.GetInstances()) { var mo = (ManagementObject)o; cpuInfo = mo.Properties["processorID"].Value.ToString(); break; } var drive = "C"; var dsk = new ManagementObject(@"win32_logicaldisk.deviceid=""" + drive + @":"""); dsk.Get(); var volumeSerial = dsk["VolumeSerialNumber"].ToString(); this.CurrentContext.MachineKey = Hashing.CalculateMd5Hash(cpuInfo + volumeSerial); }