Esempio n. 1
0
        public static bool CheckCopyright()
        {
            XmlDocument xmlDocument = HiCache.Get("Hishop_SiteLicense") as XmlDocument;
            HttpContext current     = HttpContext.Current;
            bool        result;

            if (xmlDocument == null)
            {
                string text;
                if (current != null)
                {
                    text = current.Request.MapPath("~/config/Hishop.lic");
                }
                else
                {
                    text = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Hishop.lic");
                }
                if (!File.Exists(text))
                {
                    result = false;
                    return(result);
                }
                xmlDocument = new XmlDocument();
                xmlDocument.LoadXml(File.ReadAllText(text));
                HiCache.Max("Hishop_SiteLicense", xmlDocument, new CacheDependency(text));
            }
            XmlNode      xmlNode        = xmlDocument.DocumentElement.SelectSingleNode("//Host");
            XmlNode      xmlNode2       = xmlDocument.DocumentElement.SelectSingleNode("//LicenseDate");
            XmlNode      xmlNode3       = xmlDocument.DocumentElement.SelectSingleNode("//ExpiresDate");
            XmlNode      xmlNode4       = xmlDocument.DocumentElement.SelectSingleNode("//Signature");
            SiteSettings masterSettings = SettingsManager.GetMasterSettings(false);

            if (string.Compare(xmlNode.InnerText, masterSettings.SiteUrl, true, CultureInfo.InvariantCulture) != 0)
            {
                result = false;
            }
            else
            {
                string s = string.Format(CultureInfo.InvariantCulture, "Host={0}&LicenseDate={1}&ExpiresDate={2}&Key={3}", new object[]
                {
                    masterSettings.SiteUrl,
                    xmlNode2.InnerText,
                    xmlNode3.InnerText,
                    masterSettings.CheckCode
                });
                bool flag = false;
                using (RSACryptoServiceProvider rSACryptoServiceProvider = new RSACryptoServiceProvider())
                {
                    rSACryptoServiceProvider.FromXmlString(LicenseHelper.GetPublicKey());
                    RSAPKCS1SignatureDeformatter rSAPKCS1SignatureDeformatter = new RSAPKCS1SignatureDeformatter(rSACryptoServiceProvider);
                    rSAPKCS1SignatureDeformatter.SetHashAlgorithm("SHA1");
                    byte[]      rgbSignature = Convert.FromBase64String(xmlNode4.InnerText);
                    SHA1Managed sHA1Managed  = new SHA1Managed();
                    byte[]      rgbHash      = sHA1Managed.ComputeHash(Encoding.UTF8.GetBytes(s));
                    flag = rSAPKCS1SignatureDeformatter.VerifySignature(rgbHash, rgbSignature);
                }
                result = (flag && DateTime.Now < DateTime.Parse(xmlNode3.InnerText));
            }
            return(result);
        }
Esempio n. 2
0
        public static CustomerServiceSettings GetMasterSettings(bool cacheable)
        {
            if (!cacheable)
            {
                HiCache.Remove("FileCache-CustomerServiceSettings");
            }
            XmlDocument             xmlDocument = HiCache.Get("FileCache-CustomerServiceSettings") as XmlDocument;
            CustomerServiceSettings result;

            if (xmlDocument == null)
            {
                string masterSettingsFilename = CustomerServiceManager.GetMasterSettingsFilename();
                if (!File.Exists(masterSettingsFilename))
                {
                    result = null;
                    return(result);
                }
                xmlDocument = new XmlDocument();
                xmlDocument.Load(masterSettingsFilename);
                if (cacheable)
                {
                    HiCache.Max("FileCache-CustomerServiceSettings", xmlDocument, new CacheDependency(masterSettingsFilename));
                }
            }
            result = CustomerServiceSettings.FromXml(xmlDocument);
            return(result);
        }
Esempio n. 3
0
        public static void Check(out bool isValid, out bool expired, out int siteQty)
        {
            siteQty = 0;
            isValid = false;
            expired = true;
            XmlDocument xmlDocument = HiCache.Get("FileCache_CommercialLicenser") as XmlDocument;

            if (xmlDocument == null)
            {
                string text = HttpContext.Current.Request.MapPath("/config/Certificates.cer");
                if (!File.Exists(text))
                {
                    return;
                }
                xmlDocument = new XmlDocument();
                xmlDocument.LoadXml(File.ReadAllText(text));
                HiCache.Max("FileCache_CommercialLicenser", xmlDocument, new CacheDependency(text));
            }
            XmlNode xmlNode  = xmlDocument.DocumentElement.SelectSingleNode("//Host");
            XmlNode xmlNode2 = xmlDocument.DocumentElement.SelectSingleNode("//LicenseDate");
            XmlNode xmlNode3 = xmlDocument.DocumentElement.SelectSingleNode("//Expires");
            XmlNode xmlNode4 = xmlDocument.DocumentElement.SelectSingleNode("//SiteQty");
            XmlNode xmlNode5 = xmlDocument.DocumentElement.SelectSingleNode("//Signature");

            if (string.Compare(xmlNode.InnerText, HttpContext.Current.Request.Url.Host, true, CultureInfo.InvariantCulture) == 0)
            {
                string s = string.Format(CultureInfo.InvariantCulture, "Host={0}&Expires={1}&SiteQty={2}&LicenseDate={3}", new object[]
                {
                    HttpContext.Current.Request.Url.Host,
                    xmlNode3.InnerText,
                    xmlNode4.InnerText,
                    xmlNode2.InnerText
                });
                using (RSACryptoServiceProvider rSACryptoServiceProvider = new RSACryptoServiceProvider())
                {
                    rSACryptoServiceProvider.FromXmlString(LicenseHelper.GetPublicKey());
                    RSAPKCS1SignatureDeformatter rSAPKCS1SignatureDeformatter = new RSAPKCS1SignatureDeformatter(rSACryptoServiceProvider);
                    rSAPKCS1SignatureDeformatter.SetHashAlgorithm("SHA1");
                    byte[]      rgbSignature = Convert.FromBase64String(xmlNode5.InnerText);
                    SHA1Managed sHA1Managed  = new SHA1Managed();
                    byte[]      rgbHash      = sHA1Managed.ComputeHash(Encoding.UTF8.GetBytes(s));
                    isValid = rSAPKCS1SignatureDeformatter.VerifySignature(rgbHash, rgbSignature);
                }
                expired = (DateTime.Now > DateTime.Parse(xmlNode3.InnerText));
                if (isValid && !expired)
                {
                    int.TryParse(xmlNode4.InnerText, out siteQty);
                }
            }
        }
Esempio n. 4
0
        public static string GetPublicKey()
        {
            string text = HiCache.Get("FileCache-Publickey") as string;

            if (string.IsNullOrEmpty(text))
            {
                HttpContext current = HttpContext.Current;
                string      text2;
                if (current != null)
                {
                    text2 = current.Request.MapPath("~/config/publickey.xml");
                }
                else
                {
                    text2 = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "config\\publickey.xml");
                }
                text = File.ReadAllText(text2);
                HiCache.Max("FileCache-Publickey", text, new CacheDependency(text2));
            }
            return(text);
        }
Esempio n. 5
0
        public static string GetPublicKey()
        {
            string str = HiCache.Get("FileCache-Publickey") as string;

            if (string.IsNullOrEmpty(str))
            {
                string      path    = null;
                HttpContext current = HttpContext.Current;
                if (current != null)
                {
                    path = current.Request.MapPath("~/config/publickey.xml");
                }
                else
                {
                    path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"config\publickey.xml");
                }
                str = File.ReadAllText(path);
                HiCache.Max("FileCache-Publickey", str, new CacheDependency(path));
            }
            return(str);
        }
Esempio n. 6
0
        public static SiteSettings GetMasterSettings(bool cacheable)
        {
            if (!cacheable)
            {
                HiCache.Remove("FileCache-MasterSettings");
            }
            XmlDocument document = HiCache.Get("FileCache-MasterSettings") as XmlDocument;

            if (document == null)
            {
                string masterSettingsFilename = GetMasterSettingsFilename();
                if (!File.Exists(masterSettingsFilename))
                {
                    return(null);
                }
                document = new XmlDocument();
                document.Load(masterSettingsFilename);
                if (cacheable)
                {
                    HiCache.Max("FileCache-MasterSettings", document, new CacheDependency(masterSettingsFilename));
                }
            }
            return(SiteSettings.FromXml(document));
        }
Esempio n. 7
0
 public static void Max(string key, object obj)
 {
     HiCache.Max(key, obj, null);
 }
Esempio n. 8
0
 public static void Max(string string_0, object object_0)
 {
     HiCache.Max(string_0, object_0, null);
 }