public void RegisterTørkService() { var serialNumber = this.GetSettingCfg(SERIAL_SETTING); tørk = Tørketrommel.Tørketrommel.Instance(PRODUCT, serialNumber, PRODUCT_VERSION, PART_NUMBER); enumTørketrommel status = tørk.Status; Timer sessionTimer = new Timer(120000); sessionTimer.Elapsed += sessionTimer_Elapsed; sessionTimer.Start(); }
private void CheckLicense() { if (_license == string.Empty) { return; } try { var key = "<RSAKeyValue><Modulus>qIOohXejsljvqIjj16CSHYi1AUCc4k3fjfYJiNjXN4R++eN8vcsjbkK+jeDqqHUFPoscNu4R3pWYz5j1f76LY63dsMZMmzKgolrvspg/SORHw5H4c3KEiFUBXUiDMQYCnik+rPEZCr5cLYyxqHkwTYAuU8lRaIcXXZsfnMpPYZk=</Modulus><Exponent>AQAB</Exponent><P>6RwneMv8cWSkvVZovR8fEhiA3lNaQNgicxpGWKoHpKXVzaXmsV7vUV1un0Pkdx1ntbrewpdLJK+JXgOIzjQBTQ==</P><Q>uQ+3x5RPExeJAIs6xAd88qhfJ2dtEx17UGn8Qq4ugf8RAB6+J4OivnglGKhEddmtZbimOu6DtkTd5FJZChY7fQ==</Q><DP>0iLFGkmYSYfWUa/BPyr80U0xbjlpVKcBdw0qeObdePjdYUK6UQ4pYgl9nSiQnSfuw42vHW9RF8L9a7h37JpIyQ==</DP><DQ>s7Oumw/KBVkKQUvxwZ8f1qZm1+WXxkMPlpOEUN/A65zaTkqMDeTGaLxUEXB8IhBBT5CRYpJvtdODwI2yRpg2JQ==</DQ><InverseQ>C8WPYn2IV0XM8avppwEnKrvMkuprNrI3Ef+IikSIsKV2FTwH5Q5VfY0nhMTpZx6t+tFXzvQJfWSZ3DhemheAKA==</InverseQ><D>ntaq7FNfO2bVT9joWoGB+NC5PJr4xd99T0SQrCsoga4kOcsR85wco3vKPdW5mlvjO5bIW4Z/1XzQ8y1MisLCgwJe9A32Nw0AU+MOM28j1R9E+AtivnB3aecFMzXzA1Gz9ncFScf44Dwxp6KFHrq/3MYlx3MVUJ6OvgHm9I3YB2E=</D></RSAKeyValue>"; string decrypted; if (!ReadFile(KEY_FILE, ref key)) { // _status = enumTørketrommel.NoValidCryptoKeyFound; // return; // try the default key } try { decrypted = DecryptString(_license, 1024, key); } catch (Exception) { Status = enumTørketrommel.NotAbleToDecrypt; return; } try { msgDeserialized = DeserializeObject(decrypted); if (msgDeserialized == null) { _status = enumTørketrommel.NotAbleToDeserialize; return; } } catch (Exception) { Status = enumTørketrommel.NotAbleToDeserialize; return; } // Check HWSerial if (!_hwSerial.Replace(" ", "").Equals(msgDeserialized.HWSerial.Replace(" ", ""))) // reomve spaces because of bug in crypt/decrypt { Status = enumTørketrommel.HWSerialMismatch; return; } // Check server name if (Environment.MachineName != msgDeserialized.Workstation) { Status = enumTørketrommel.ServerNameMismatch; return; } // Check valid if (!msgDeserialized.Valid) { Status = enumTørketrommel.NotValid; return; } // Check SW Revision if (!msgDeserialized.ProductVersion.Equals(_productVersion)) { Status = enumTørketrommel.ProductVersionMismatch; return; } // Check StartDate against server clock // Check Start Date against internal counter/timer // Check ExpireDate if (_state == enumState.LicenseFile) { // Check Product serial. Only neccesary when using license file ( when connected to license server this is already done in the server) if (msgDeserialized.ProductSerial != null && !msgDeserialized.ProductSerial.Equals(_productSerial)) { Status = enumTørketrommel.ProductSerialMismatch; return; } if (msgDeserialized.Expires < DateTime.Now) { Status = enumTørketrommel.ExpiredDueToInternalCounter; return; } } Status = enumTørketrommel.Ok; } catch (Exception ex) { Status = enumTørketrommel.Unknown; } }