C# - API - проблема с полем обновления - метод PUT - сложный хеш - PullRequest
0 голосов
/ 02 мая 2020

У меня есть интересная и странная проблема - у меня есть функция, которая изменяет пароль для пользователя в базе данных. Пароль ha sh bCrypt - и, как правило, метод PUT работает один раз, а если он не работает - в чем может быть причина? Код ниже - спасибо за советы.

Настольная программа - функция:

public async Task UpdatePasswordUser(string new_password, string username)
    {
        if (!string.IsNullOrEmpty(token))
        {
            client.DefaultRequestHeaders.Remove("Authorization");
            client.DefaultRequestHeaders.Add("Authorization", "Bearer " + token);
        }

        var data = JsonConvert.SerializeObject(new Table_test { Password = new_password });
        var response_table = await client.PutAsync(_baseUrl + "/api/table_test/changepassword-" + new_password + "-" + username, new StringContent(data, Encoding.UTF8, "application/json"));
        if (!response_table.IsSuccessStatusCode)
        {
            if (response_table.StatusCode == System.Net.HttpStatusCode.Unauthorized)
                MessageBox.Show("Error, Code : " + response_table.StatusCode);

            MessageBox.Show("Error, Code : " + response_table.StatusCode);
        }
    }

API:

 [Authorize]
    [HttpPut]
    [Route("changepassword-{new_password}-{username}")]
    public async Task<IActionResult> ChangePassword(string new_password, string username)
    {
        return await Task.Run(() =>
        {
            using (var c = new MySqlConnection(con_sql.MySQL))
            {
                var sql = @"UPDATE table_test SET password = @password WHERE user = @user";
                var query = c.Query<Models.Table_test>(sql, new { Password = new_password, User = username }, commandTimeout: 60);
                return Ok(query);
            }
        });
    }

Например: Пользователь - test12345 Новый пароль - 2 $ b $ 06 $ KiL6aoxxl8ulZ1rQzE1HQnrGLCOq9JM0NUiL5FOSkOvdT.9md8cW

Возможно, сбой на стороне: новый StringContent (данные, Encoding.UTF8, "application / json")?

за предложения) * *1011*. 1013 *
...