Beispiel #1
0
 /// <summary>
 /// 生成SAFENET证书
 /// </summary>
 /// <param name="productKey"></param>
 /// <returns></returns>
 internal bool installSafeNet(string productKey, out string slId, out string msg)
 {
     msg  = null;
     slId = null;
     try
     {
         string v2c    = getV2C(productKey, out msg);
         string refXml = null;
         if (!string.IsNullOrEmpty(v2c))
         {
             xmlBiz      bll       = new xmlBiz();
             XmlDocument xml       = bll.getXmlDocument(v2c.ToString());
             XmlNode     haspInfo  = bll.getXmlSingleNode(xml, "hasp_info");
             XmlNode     haspscope = bll.getXmlSingleNode(haspInfo, "haspscope");
             XmlNode     vendor    = bll.getXmlSingleNode(haspscope, "vendor");
             XmlNode     hasp      = bll.getXmlSingleNode(vendor, "hasp");
             slId = bll.getXmlAttribute(hasp, "id");
         }
         HaspStatus status = Hasp.Update(v2c, ref refXml);
         return(status == HaspStatus.StatusOk);
     }
     catch (Exception ex)
     {
         msg += ex.Message + ex.StackTrace;
         return(false);
     }
 }
Beispiel #2
0
        internal string TransferToolupdate(string v2c)
        {
            string     refXml = null;
            HaspStatus status = Hasp.Update(v2c, ref refXml);

            if (status == HaspStatus.StatusOk)
            {
                refXml = "ok";
            }
            else
            {
                refXml = ((int)status + status.ToString());
            }
            return(refXml);
        }
Beispiel #3
0
        internal string update(string v2c)
        {
            string     refXml = null;
            HaspStatus status = Hasp.Update(v2c, ref refXml);

            if (status == HaspStatus.UpdateAlreadyAdded)
            {
                refXml = "T1";
            }
            else if (status == HaspStatus.InvalidUpdateData)
            {
                refXml = "T2";
            }
            else if (status == HaspStatus.StatusOk)
            {
                refXml = "ok";
            }
            else
            {
                refXml = ((int)status + status.ToString());
            }
            return(refXml);
        }
        private void buttonDetach_Click(object sender, EventArgs e)
        {
            var myId = MyGlobalMethods.GetInfo(Variables.scopeForLocal, Variables.formatForGetId);

            string info          = null;
            int    detachingTime = (Convert.ToInt32(numericUpDownDaysForDetach.Value) * 24 * 60 * 60);

            HaspStatus myDetachStatus = Hasp.Transfer(Variables.actionForDetach.Replace("{PRODUCT_ID}", productId).Replace("{NUMBER_OF_SECONDS}", detachingTime.ToString()), Variables.scopeForSpecificKeyId.Replace("{KEY_ID}", parentKeyId), Variables.vendorCode[Variables.vendorCode.Keys.Where(k => k.Key == Variables.currentBatchCode).FirstOrDefault()], myId, ref info);

            if (myDetachStatus == HaspStatus.StatusOk)
            {
                // hasp_update
                string     ack            = null;
                HaspStatus myUpdateStatus = Hasp.Update(info, ref ack);

                if (myUpdateStatus == HaspStatus.StatusOk)
                {
                    //handle success
                    var tmpAvaliablesKeys = XDocument.Parse(MyGlobalMethods.GetInfo(Variables.scopeForLocal, Variables.formatForGetAvailableLicenses));
                    foreach (var el in tmpAvaliablesKeys.Root.Elements("hasp"))
                    {
                        foreach (var el2 in el.Elements("feature"))
                        {
                            if (el2.Attribute("id").Value == Variables.myFeature.FeatureId.ToString())
                            {
                                childKeyId = el.Attribute("id").Value;
                                break;
                            }
                        }

                        if (String.IsNullOrEmpty(childKeyId))
                        {
                            break;
                        }
                    }

                    MessageBox.Show(MultiLanguage.ErrorMessageReplacer(language.Key, "Current status of the opperation is: {0} \nPlease, re-login in application, for using LOCALLY license.").Replace("{0}", myUpdateStatus.ToString()), MultiLanguage.ErrorMessageReplacer(language.Key, "Successfully Detached!"));
                }
                else
                {
                    //handle error
                    MessageBox.Show(myUpdateStatus.ToString(), MultiLanguage.ErrorMessageReplacer(language.Key, "Detaching apply update error!"));
                }
            }
            else
            {
                if (myDetachStatus == HaspStatus.InvalidDuration)
                {
                    try
                    {
                        var tmpAvaliablesKeys = XDocument.Parse(MyGlobalMethods.GetInfo(Variables.scopeForLocal, Variables.formatForGetAvailableLicenses));
                        foreach (var el in tmpAvaliablesKeys.Root.Elements("hasp"))
                        {
                            foreach (var el2 in el.Elements("feature"))
                            {
                                if (el2.Attribute("id").Value == Variables.myFeature.FeatureId.ToString())
                                {
                                    childKeyId = el.Attribute("id").Value;
                                    break;
                                }
                            }

                            if (String.IsNullOrEmpty(childKeyId))
                            {
                                break;
                            }
                        }

                        string myCancelDetachStatus = Variables.useUrl ? MyGlobalMethods.CancelDetachViaUrl(productId, childKeyId) : MyGlobalMethods.CancelDetachViaLicensingApi(childKeyId);

                        if (myCancelDetachStatus == HttpStatusCode.OK.ToString() || myCancelDetachStatus == HaspStatus.StatusOk.ToString())
                        {
                            myDetachStatus = Hasp.Transfer(Variables.actionForDetach.Replace("{PRODUCT_ID}", productId).Replace("{NUMBER_OF_SECONDS}", detachingTime.ToString()), Variables.scopeForSpecificKeyId.Replace("{KEY_ID}", parentKeyId), Variables.vendorCode[Variables.vendorCode.Keys.Where(k => k.Key == Variables.currentBatchCode).FirstOrDefault()], myId, ref info);

                            if (myDetachStatus == HaspStatus.StatusOk)
                            {
                                // hasp_update
                                string     ack            = null;
                                HaspStatus myUpdateStatus = Hasp.Update(info, ref ack);

                                if (myUpdateStatus == HaspStatus.StatusOk)
                                {
                                    //handle success
                                    MessageBox.Show(MultiLanguage.ErrorMessageReplacer(language.Key, "Current status of the opperation is: {0} \nPlease, re-login in application, for using LOCALLY license.").Replace("{0}", myUpdateStatus.ToString()), MultiLanguage.ErrorMessageReplacer(language.Key, "Successfully Detached!"));
                                }
                                else
                                {
                                    //handle error
                                    MessageBox.Show(myUpdateStatus.ToString(), MultiLanguage.ErrorMessageReplacer(language.Key, "Detaching apply update error!"));
                                }
                            }
                            else
                            {
                                //handle error
                                MessageBox.Show(myDetachStatus.ToString(), MultiLanguage.ErrorMessageReplacer(language.Key, "Re-Detaching error!"));
                            }
                        }
                        else
                        {
                            //handle error
                            MessageBox.Show(MultiLanguage.ErrorMessageReplacer(language.Key, "Status request: {0} \nSomething goes wrong... Please, try again later!").Replace("{0}", myCancelDetachStatus), MultiLanguage.ErrorMessageReplacer(language.Key, "Cancel Detaching error (In Re-Detach)!"));
                        }
                    }
                    catch
                    {
                        // do nothing...
                        MessageBox.Show(myDetachStatus.ToString(), MultiLanguage.ErrorMessageReplacer(language.Key, "Detaching error!"));
                    }
                }
                else
                {
                    //handle error
                    MessageBox.Show(myDetachStatus.ToString(), MultiLanguage.ErrorMessageReplacer(language.Key, "Detaching error!"));
                }
            }
        }