У меня есть этот код:Как проверить, совпадает ли старый пароль, прежде чем его изменить?
//Update login query
string sql = "ALTER LOGIN " + login.ToUpper() + " WITH PASSWORD = '" + password + "' OLD_PASSWORD = '" + oldpassword + "'";
//Try connection and execute
using (SqlConnection connection = new SqlConnection(GetConnection()))
{
connection.Open();
SqlCommand command = new SqlCommand(sql, connection);
command.CommandType = System.Data.CommandType.Text;
var result = command.ExecuteScalar();
connection.Close();
}
Этот SQL запрос изменения пароля логина в базе данных. Обратите внимание, что для продолжения требуется старый пароль. Хотя, если я прохожу неправильный старый пароль, то он бросает SQLException:
Невозможно изменить логин «SEVA», поскольку он не существует или у вас нет разрешения.
Как проверить правильность старого пароля перед выполнением этого запроса, чтобы я мог показать пользователю сообщение об ошибке?
Не думаю, что вы можете. Лучшее, что вы можете сделать, это попытаться сменить пароль, как вы уже это сделали, затем поймать исключение и сообщить пользователю, если он не сработал. –
Зачем проверять перед запросом? Вы знаете, что такое исключение, просто действуйте на основе успеха или исключения. – KevenDenen
Оформить заказ на предыдущую публикацию Stackoverflow и просмотреть принятый ответ здесь - http://stackoverflow.com/questions/19308801/update-a-password-if-user-name-and-old-password-match || http://stackoverflow.com/questions/26256351/encrypt-passwords-on-sql-server-2008-using-sha1 – MethodMan