public PersonAuth GetPerson(string key, string value) { PersonAuth res = null; if (connection == null) { connection = new MySqlConnection(connectionString); } MySqlCommand iniQuery = null; MySqlDataReader dataReader = null; string selectQuery = string.Format( "SELECT `username`, `email`, `password`, `status`, `banTill` FROM `Persons` WHERE `{0}`='{1}'", key, value); try { connection.Open(); iniQuery = new MySqlCommand(selectQuery, connection); dataReader = iniQuery.ExecuteReader(); } catch (MySqlException ex) { return(null); } if (dataReader.Read()) { res = new PersonAuth( dataReader.GetString("username"), dataReader.GetString("email"), dataReader.GetString("password"), dataReader.GetInt32("status"), dataReader.GetString("banTill")); } dataReader.Close(); dataReader.Dispose(); iniQuery.Dispose(); connection.Close(); return(res); }
public LoginStatus TryLogIn(string login, string password, out PersonAuth p) { p = GetPerson("username", login); if (p == null) { return(LoginStatus.WrongLogin); } else if (p.password != password) { return(LoginStatus.WrongPassword); } else { if (p.status == AuthStatus.Banned && p.banTill < DateTime.Now) { SetStatus(login, 0, null); p.status = 0; p.banTill = null; } return(LoginStatus.OK); } }
public void ProcessRequest(HttpContext context) { RequestObject robj = null; using (StreamReader sr = new StreamReader(context.Request.InputStream)) { string body = sr.ReadLine(); robj = JsonConvert.DeserializeObject <RequestObject>(body); } string email = (string)robj.Args; string username = email.Split('@')[0]; string password = Membership.GeneratePassword(10, 0); PersonDAO check = new PersonDAO(); PersonDAO.RegistrationStatus res = check.TryRegister(username, password, email); switch (res) { case PersonDAO.RegistrationStatus.EmailExists: break; case PersonDAO.RegistrationStatus.LoginExists: PersonAuth pers = null; PersonDAO.LoginStatus loginStatus = check.TryLogIn(username, password, out pers); break; case PersonDAO.RegistrationStatus.OK: break; } // context.Response.Write(r); }