Пример #1
0
        /// <summary>
        /// Führt eine Onlineaktivierung durch und meldet den Status zurück
        /// </summary>
        /// <param name="pAddress">URL zum Aktivierungsskript (activate.php) TODO: Verweis</param>
        /// <param name="pKey">Vom Benutzer eingegebener Key (25-stellig)</param>
        /// <param name="pAppID">ApplikationsID, hardcoded und muss in OnlineDatenbank eingetragen werden</param>
        /// <param name="pHWID">HardwareID</param>
        /// <returns><see cref="OnlineActivationResponse">OnlineActivationResponse-Wert</see> wird zurückgegeben. Bei Erfolg sollte OnlineActivationResponse.Successful zurückgegeben werden</returns>
        public static OnlineActivationResponse OnlineActivation(string pAddress, string pKey, string pAppID, string pHWID)
        {
            string requestUrl = pAddress;
            string parameters = "?";

            parameters += "key=" + pKey;
            parameters += "&app=" + pAppID;
            parameters += "&machine=" + pHWID;
            parameters += "&action=1";             // Fire activation

                        #if DEBUG
            StreamWriter sw = new StreamWriter("OnlineActivationLastCall.txt");
            sw.Write(requestUrl + parameters);
            sw.Flush();
            sw.Close();
                        #endif

            // Parameter prüfen
            // Mit PC-ID versehen
            // Request
            HttpWebRequest  requ = (HttpWebRequest)HttpWebRequest.Create(requestUrl + parameters);
            HttpWebResponse resp = (HttpWebResponse)requ.GetResponse();

            StreamReader sr = new StreamReader(resp.GetResponseStream());

            string answer = sr.ReadLine();

            sr.Close();
            resp.Close();

            int intAnswer = 0;

            try
            {
                intAnswer = Convert.ToInt32(answer);
            }
            catch
            {
                return(OnlineActivationResponse.InvalidResponseCode);                 // Tritt bei Syntaxfehlern auf...
            }


            OnlineActivationResponse response = (OnlineActivationResponse)(intAnswer);
            return(response);
            // answer auswerten

            //return(OnlineActivationResponse.ActivationCancelled);
        }
Пример #2
0
        /// <summary>
        /// Registriert in der Onlinedatenbank einen Key (prüft aber vorher ob dieser Key bereits vorhanden ist)
        /// </summary>
        /// <param name="pAddress">URL zum Aktivierungsskript</param>
        /// <param name="pKey">Zu registrierender Key</param>
        /// <param name="pAppID">ApplikationsID als String</param>
        /// <param name="pAmount">Anzahl der zu vergebenen Lizenzen (so oft kann auf unterschiedlichen Rechnern aktiviert werden)</param>
        /// <returns></returns>
        public static OnlineActivationResponse RegisterKey(string pAddress, string pKey, string pAppID, int pAmount)
        {
            string requestUrl = pAddress;
            string parameters = "?";

            parameters += "key=" + pKey;
            parameters += "&app=" + pAppID;
            parameters += "&action=3";             // Fire activation
            parameters += "&amount=" + pAmount.ToString();

            // Parameter prüfen
            // Mit PC-ID versehen
            // Request
            HttpWebRequest  requ = (HttpWebRequest)HttpWebRequest.Create(requestUrl + parameters);
            HttpWebResponse resp = (HttpWebResponse)requ.GetResponse();

            StreamReader sr = new StreamReader(resp.GetResponseStream());

            string answer = sr.ReadLine();

            sr.Close();
            resp.Close();


            int intAnswer = 0;

            try
            {
                intAnswer = Convert.ToInt32(answer);
            }
            catch
            {
                return(OnlineActivationResponse.InvalidResponseCode);
            }


            OnlineActivationResponse response = (OnlineActivationResponse)(intAnswer);

            return(response);
            // answer auswerten

            //return(OnlineActivationResponse.ActivationCancelled);
        }
Пример #3
0
        /// <summary>
        /// Routine zum Durchführen einer manuellen Konfiguration (Kunde gibt über Telefon Codes durch und erhält Antwortcode)
        /// </summary>
        /// <param name="pAddress">URL zum Aktivierungsskript</param>
        /// <param name="pKey">Key, für den aktiviert werden soll</param>
        /// <param name="pAppID">ApplikationsID für die aktiviert werden soll</param>
        /// <param name="pHWID">Hardwarekennung, für die aktiviert werden soll</param>
        /// <param name="pAnswerCodePrinter">Delgat (siehe <see cref="AnswerCodePrinter">AnswerCodePrinter</see></param>
        /// <returns>Aktivierungsstatus, Aktivierungscode über Delegate</returns>

        public static OnlineActivationResponse TelephoneActivation(string pAddress, string pKey, string pAppID, string pHWID, AnswerCodePrinter pAnswerCodePrinter)
        {
            string requestUrl = pAddress;
            string parameters = "?";

            parameters += "key=" + pKey;
            parameters += "&app=" + pAppID;
            parameters += "&machine=" + pHWID;
            parameters += "&action=4";             // Fire activation


            // Parameter prüfen
            // Mit PC-ID versehen
            // Request
            HttpWebRequest  requ = (HttpWebRequest)HttpWebRequest.Create(requestUrl + parameters);
            HttpWebResponse resp = (HttpWebResponse)requ.GetResponse();

            StreamReader sr = new StreamReader(resp.GetResponseStream());

            string answer = sr.ReadLine();

            sr.Close();
            resp.Close();

            string[] parts;
            try
            {
                parts = answer.Split(';');
            }
            catch
            {
                TBL.Exceptions.ConversionException ex = new TBL.Exceptions.ConversionException("In Telefonaktivierungsantwort zurückgelieferter String lässt sich nicht nach Separator ';' zerteilen. Empfangener Wert: " + answer);
                throw(ex);
            }

            int intAnswer = 0;

            try
            {
                intAnswer = Convert.ToInt32(parts[0]);
            }
            catch
            {
                return(OnlineActivationResponse.InvalidResponseCode);
            }


            OnlineActivationResponse response = (OnlineActivationResponse)(intAnswer);

            if (response == OnlineActivationResponse.Successful)
            {
                try
                {
                    int activationCode = Convert.ToInt32(sr.ReadLine());
                    pAnswerCodePrinter(parts[1].ToString());
                }
                catch
                {
                    return(OnlineActivationResponse.InvalidResponseCode);
                }
            }
            //else
            return(response);
        }