/// <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); }
/// <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); }
/// <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); }