Хорошо, я проверил несколько разных похожих проблем, но похоже, что ничего из похожих случаев не решает мою проблему, или мне что-то не хватает.
Соответствующий метод:
private void ApplyPasswordToUser(string username, string passwordHash)
{
using(SqlConnection connection = new SqlConnection(ConnectionString))
{
SqlCommand command = new SqlCommand
{
Connection = connection,
CommandText = "dbo.AddPasswordHash @Username @PasswordHash"
};
command.Parameters.Add("@Username",SqlDbType.NVarChar,24).Value = username;
command.Parameters.AddWithValue("@PasswordHash",passwordHash);
connection.Open();
command.ExecuteNonQuery(); // Error here
}
}
dbo.AddPasswordHa sh:
@Username nchar(24),
@PasswordHash nchar(80)
AS
BEGIN
SET NOCOUNT ON;
UPDATE dbo.UserPass
SET Password_Hash = @PasswordHash
WHERE Username = @Username
END
Я использую алгоритм Blowfi sh из пакета NuGet CryptSharp.
У меня есть еще 3 команды, которые не передайте этот пароль ha sh в качестве ввода, и все будет работать отлично. Кажется, что этот сработал, что бы я ни изменил.
ha sh содержит различные специальные символы в своей строке, поэтому я не уверен, влияет ли это на то, проходит ли команда или нет .