/// <summary> /// Logins the user hashed. /// </summary> /// <returns>The user hashed.</returns> /// <param name="userNick">User nick.</param> /// <param name="userPassword">User hashed password.</param> public static ServerPacketUserLogin LoginUserHashed(String userNick, String userPassword) { //new user login packet ClientPacketUserLogin clientPacketUserLogin = new ClientPacketUserLogin(userNick, userPassword); //send login to server ServerPacketUserLogin serverPacketUserLogin = TCPClient.SendPacket(clientPacketUserLogin) as ServerPacketUserLogin; //if no answer if (serverPacketUserLogin == null) { return(new ServerPacketUserLogin(NetworkError.SERVER_UNAVAILABLE, null, false, null)); } return(serverPacketUserLogin); }
public override Packet OnPacketReceive(Packet receivedPacket) { ClientPacketUserLogin clientPacketUserLogin = receivedPacket as ClientPacketUserLogin; ConsoleHelper.Write("Receive - ClientPacketUserLogin"); String userNick = clientPacketUserLogin.UserName.ToSQL(); String userPassword = clientPacketUserLogin.UserPassword.ToSQL(); //login user db command MySqlCommand loginUserCommand = new MySqlCommand(); loginUserCommand.Connection = Program.mySQLManager.MySQLConnection.MysqlConnection; loginUserCommand.CommandText = $"SELECT * FROM `T_User` WHERE userNick='{userNick}' AND userPassword='******'"; MySqlDataReader mysqlDataReader = null; ServerPacketUserLogin serverPacketUserLogin; Boolean userAccountActive = false; try { mysqlDataReader = loginUserCommand.ExecuteReader(); PLFUser user = null; //open reader while (mysqlDataReader.Read()) { user = new PLFUser(mysqlDataReader.GetInt32(0), mysqlDataReader.GetString(2), mysqlDataReader.GetString(3), mysqlDataReader.GetString(4), mysqlDataReader.GetString(5)); userAccountActive = mysqlDataReader.GetBoolean(6); } mysqlDataReader.Close(); if (user != null) { //login user db command MySqlCommand getUserDAuthKeyCommand = new MySqlCommand(); getUserDAuthKeyCommand.Connection = Program.mySQLManager.MySQLConnection.MysqlConnection; getUserDAuthKeyCommand.CommandText = $"SELECT * FROM `T_DoubleAuth` WHERE `daUserID`='{user.ID}'"; mysqlDataReader = getUserDAuthKeyCommand.ExecuteReader(); String userKey = "null"; while (mysqlDataReader.Read()) { userKey = mysqlDataReader.GetString(1); } serverPacketUserLogin = new ServerPacketUserLogin(NetworkError.NONE, user, userAccountActive, userKey == null ? null: JsonConvert.DeserializeObject <byte[]>(userKey)); } else { serverPacketUserLogin = new ServerPacketUserLogin(NetworkError.SQL_USER_UNKNOWN, null, false, null); } } catch (Exception e) { serverPacketUserLogin = new ServerPacketUserLogin(NetworkError.GLOBAL_UNKNOWN, null, false, null); Console.WriteLine(e.Message); } if (mysqlDataReader != null && !mysqlDataReader.IsClosed) { mysqlDataReader.Close(); } ConsoleHelper.Write("Send - ServerPacketUserLogin"); return(serverPacketUserLogin); }