protected override void HandleRequest() { using (var db = new Database()) { if (!IsUsername(Query["newGUID"])) WriteErrorLine("Invalid Username"); else { if (db.HasUuid(Query["guid"]) && db.Verify(Query["guid"], "") != null) { if (db.HasUuid(Query["newGUID"])) WriteErrorLine("Username is already taken"); else { var cmd = db.CreateQuery(); cmd.CommandText = "UPDATE accounts SET uuid=@newUuid, name=@newUuid, password=SHA1(@password), guest=FALSE WHERE uuid=@uuid, name=@name;"; cmd.Parameters.AddWithValue("@uuid", Query["guid"]); cmd.Parameters.AddWithValue("@newUuid", Query["newGUID"]); cmd.Parameters.AddWithValue("@password", Query["newPassword"]); if (cmd.ExecuteNonQuery() > 0) Success(); else WriteErrorLine("Internal Error"); } } else { if (db.Register(Query["newGUID"], Query["newPassword"], false) != null) Success(); else WriteErrorLine("Internal Error"); } } } }
public override void HandleRequest(HttpListenerContext context) { NameValueCollection query; using (var rdr = new StreamReader(context.Request.InputStream)) query = HttpUtility.ParseQueryString(rdr.ReadToEnd()); using (var db = new Database(Program.Settings.GetValue("conn"))) { byte[] status; if (!IsUsername(query["newGUID"])) status = Encoding.UTF8.GetBytes("<Error>Invalid username</Error>"); else { if (db.HasUuid(query["guid"]) && db.Verify(query["guid"], "") != null) { if (db.HasUuid(query["newGUID"])) status = Encoding.UTF8.GetBytes("<Error>Duplicate username</Error>"); else if (db.HasEmail(query["email"])) status = Encoding.UTF8.GetBytes("<Error>Duplicate email</Error>"); else { MySqlCommand cmd = db.CreateQuery(); cmd.CommandText = "UPDATE accounts SET uuid=@newUuid, password=SHA1(@password), email=@email, guest=FALSE WHERE uuid=@uuid;"; cmd.Parameters.AddWithValue("@uuid", query["guid"]); cmd.Parameters.AddWithValue("@newUuid", query["newGUID"]); cmd.Parameters.AddWithValue("@password", query["newPassword"]); cmd.Parameters.AddWithValue("@email", query["email"]); if (cmd.ExecuteNonQuery() > 0) status = Encoding.UTF8.GetBytes("<Success />"); else status = Encoding.UTF8.GetBytes("<Error>Internal Error</Error>"); } } else { if (db.HasUuid(query["newGUID"])) { status = Encoding.UTF8.GetBytes("<Error>Duplicate username</Error>"); } else if (db.HasEmail(query["email"])) { status = Encoding.UTF8.GetBytes("<Error>Duplicate email</Error>"); } else { if (db.Register(query["newGUID"], query["newPassword"], query["email"], false) != null) status = Encoding.UTF8.GetBytes("<Success />"); else status = Encoding.UTF8.GetBytes("<Error>Internal Error</Error>"); } } } context.Response.OutputStream.Write(status, 0, status.Length); } }
public void HandleRequest(HttpListenerContext context) { NameValueCollection query; using (StreamReader rdr = new StreamReader(context.Request.InputStream)) query = HttpUtility.ParseQueryString(rdr.ReadToEnd()); using (var db = new Database()) { byte[] status; if (0 != 0/*!IsValidEmail(query["newGUID"])*/) status = Encoding.UTF8.GetBytes("<Error>Invalid Username</Error>"); else { if (db.HasUuid(query["guid"]) && db.Verify(query["guid"], "") != null) { if (db.HasUuid(query["newGUID"])) status = Encoding.UTF8.GetBytes("<Error>Username is already taken!</Error>"); else { var cmd = db.CreateQuery(); cmd.CommandText = "UPDATE accounts SET uuid=@newUuid, name=@newUuid, password=SHA1(@password), guest=FALSE WHERE uuid=@uuid, name=@name;"; cmd.Parameters.AddWithValue("@uuid", query["guid"]); cmd.Parameters.AddWithValue("@newUuid", query["newGUID"]); cmd.Parameters.AddWithValue("@password", query["newPassword"]); if (cmd.ExecuteNonQuery() > 0) status = Encoding.UTF8.GetBytes("<Success />"); else status = Encoding.UTF8.GetBytes("<Error>Internal Error</Error>"); } } else { if (db.Register(query["newGUID"], query["newPassword"], false) != null) status = Encoding.UTF8.GetBytes("<Success />"); else status = Encoding.UTF8.GetBytes("<Error>Internal Error</Error>"); } } context.Response.OutputStream.Write(status, 0, status.Length); } }
protected override void HandleRequest() { using (var db = new Database()) { byte[] status; if (0 != 0/*!IsValidEmail(query["newGUID"])*/) status = Encoding.UTF8.GetBytes("<Error>Invalid Username</Error>"); else { if (db.HasUuid(Query["guid"]) && db.Verify(Query["guid"], "") != null) { if (db.HasUuid(Query["newGUID"])) status = Encoding.UTF8.GetBytes("<Error>Username is already taken!</Error>"); else { var cmd = db.CreateQuery(); cmd.CommandText = "UPDATE accounts SET uuid=@newUuid, name=@newUuid, password=SHA1(@password), guest=FALSE WHERE uuid=@uuid, name=@name;"; cmd.Parameters.AddWithValue("@uuid", Query["guid"]); cmd.Parameters.AddWithValue("@newUuid", Query["newGUID"]); cmd.Parameters.AddWithValue("@password", Query["newPassword"]); if (cmd.ExecuteNonQuery() > 0) status = Encoding.UTF8.GetBytes("<Success />"); else status = Encoding.UTF8.GetBytes("<Error>Internal Error</Error>"); } } else { if (db.Register(Query["newGUID"], Query["newPassword"], false) != null) status = Encoding.UTF8.GetBytes("<Success />"); else status = Encoding.UTF8.GetBytes("<Error>Internal Error</Error>"); } } Context.Response.OutputStream.Write(status, 0, status.Length); } }
protected override void HandleRequest() { if (Query["ignore"] == null || !String.IsNullOrWhiteSpace(Query["entrytag"]) || String.IsNullOrWhiteSpace(Query["isAgeVerified"]) || !Query["newGUID"].Contains("@")) { using (StreamWriter wtr = new StreamWriter(Context.Response.OutputStream)) wtr.Write("<Error>WebRegister.invalid_email_address</Error>"); return; } if (Query.AllKeys.Length != 6) { using (StreamWriter wtr = new StreamWriter(Context.Response.OutputStream)) wtr.Write("<Error>WebRegister.invalid_email_address</Error>"); return; } if (!IsValidEmail(Query["newGuid"])) { using (StreamWriter wtr = new StreamWriter(Context.Response.OutputStream)) wtr.Write("<Error>WebRegister.invalid_email_address</Error>"); return; } using (Database db = new Database()) { byte[] status; if (!IsValidEmail(Query["newGUID"])) status = Encoding.UTF8.GetBytes("<Error>WebForgotPasswordDialog.emailError</Error>"); if (db.HasUuid(Query["guid"]) && !db.Verify(Query["guid"], "", Program.GameData).IsGuestAccount) { if (db.HasUuid(Query["newGUID"])) status = Encoding.UTF8.GetBytes("<Error>Error.emailAlreadyUsed</Error>"); else { var cmd = db.CreateQuery(); cmd.CommandText = "UPDATE accounts SET uuid=@newUuid, name=@newUuid, password=SHA1(@password), guest=FALSE, line1=@empty, line2=@empty, line3=@empty WHERE uuid=@uuid, name=@name;"; cmd.Parameters.AddWithValue("@uuid", Query["guid"]); cmd.Parameters.AddWithValue("@newUuid", Query["newGUID"]); cmd.Parameters.AddWithValue("@password", Query["newPassword"]); cmd.Parameters.AddWithValue("@empty", string.Empty); if (cmd.ExecuteNonQuery() > 0) status = Encoding.UTF8.GetBytes("<Success />"); else status = Encoding.UTF8.GetBytes("<Error>Error.emailAlreadyUsed</Error>"); } } else { Account acc = db.Register(Query["newGUID"], Query["newPassword"], false, Program.GameData); if (acc != null) { if (Program.Settings.GetValue<bool>("verifyEmail")) { MailMessage message = new MailMessage(); message.To.Add(Query["newGuid"]); message.IsBodyHtml = true; message.Subject = "Please verify your account."; message.From = new MailAddress(Program.Settings.GetValue<string>("serverEmail", "")); message.Body = "<center>Please verify your email via this <a href=\"" + Program.Settings.GetValue<string>("serverDomain", "localhost") + "/account/validateEmail?authToken=" + acc.AuthToken + "\" target=\"_blank\">link</a>.</center>"; Program.SendEmail(message, true); } status = Encoding.UTF8.GetBytes("<Success/>"); } else status = Encoding.UTF8.GetBytes("<Error>Error.emailAlreadyUsed</Error>"); } Context.Response.OutputStream.Write(status, 0, status.Length); } }