/*public bool ValidateUser(string login, string password) * { * string msg; * CUser clUser = new CUser(LocalData.UserId(), LocalData.CSDbUsers(), LocalData.LogPath()); * STUser dbuser = new STUser(); * * int ret = clUser.GetRecordByUserLogin(login, out dbuser, out msg); * * if (ret != 0) return false; * else * { * if (dbuser.password == CreatePasswordHash(password, dbuser.passwordsalt) && dbuser.isactivated == true) * { * clUser.Lock(dbuser.userid, 0, null, null, out msg); * // скинем количество неверных попыток и доту временной блокировки и дату ввода не верной попытки * return true; * } * else * { * * // необходимо проверить дату последней ошибочной попытки * // если она+30 минут меньше текущей количество попыток устанавливаем 1 и записываем дату * // если нет считаем попытку * // если это не 3 пишем дату последней попытки и увеличиваем попытку * // иначе скидываем дату и попытку и вносим дату блокировки * if (dbuser.lastmisstime != null && dbuser.lastmisstime <= DateTime.Now.AddMinutes(-30)) * { * clUser.Lock(dbuser.userid, 1, DateTime.Now, null, out msg); * } * else * { * if (dbuser.cntmisstry < 2) * clUser.Lock(dbuser.userid, dbuser.cntmisstry + 1, DateTime.Now, null, out msg); * else clUser.Lock(dbuser.userid, 0, null, DateTime.Now.AddMinutes(30), out msg); * } * return false; * } * } * }*/ public bool ValidateLogOnPassword(STUser dbuser, string password, out string msg) { msg = null; bool ret = true; try { CUser clUser = new CUser(LocalData.UserId(), LocalData.CSDbUsers(), LocalData.LogPath()); if (dbuser.password == CreatePasswordHash(password, dbuser.passwordsalt) && dbuser.isactivated == true) { clUser.Lock(dbuser.userid, 0, null, null, out msg); // скинем количество неверных попыток и доту временной блокировки и дату ввода не верной попытки return(true); } else { // необходимо проверить дату последней ошибочной попытки // если она+30 минут меньше текущей количество попыток устанавливаем 1 и записываем дату // если нет считаем попытку // если это не 3 пишем дату последней попытки и увеличиваем попытку // иначе скидываем дату и попытку и вносим дату блокировки if (dbuser.lastmisstime != null && dbuser.lastmisstime <= DateTime.Now.AddMinutes(-30)) { clUser.Lock(dbuser.userid, 1, DateTime.Now, null, out msg); } else { if (dbuser.cntmisstry < 2) { clUser.Lock(dbuser.userid, dbuser.cntmisstry + 1, DateTime.Now, null, out msg); } else { clUser.Lock(dbuser.userid, 0, null, DateTime.Now.AddMinutes(30), out msg); } } return(false); } } catch (Exception ex) { msg = ex.Message; ret = false; } return(ret); }