Exemplo n.º 1
0
        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();
        }
Exemplo n.º 2
0
        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;
            }
        }