У нас есть приложение Ruby on Rails, в котором используется самородка Devise для обработки пользователей, включая создание и аутентификацию паролей пользователей. Очевидно, пароли зашифрованы в базе данных MySQL. Мы используем настройки Devise для того, как он шифрует пароль. Теперь у нас есть еще одно небольшое приложение с одной и той же локальной сетью, которое (приложение C# ASP.NET) должно аутентифицироваться с помощью пользователя/пароля непосредственно с базой данных, чтобы выполнять некоторые операции только для чтения.Ruby on Rails Разработать зашифрованный пароль, прочитанный с C#. NET
Как мы можем лучше всего имитировать то, что Devise делает для аутентификации пользователя/пароля в приложении C# ASP.NET по тем же данным в базе данных MySQL?
По сути, мне нужно выяснить, как воссоздать действующий пароль Devise? метод в C# .NET
# File 'lib/devise/models/database_authenticatable.rb', line 46
def valid_password?(password)
return false if encrypted_password.blank?
bcrypt = ::BCrypt::Password.new(encrypted_password)
password = ::BCrypt::Engine.hash_secret("#{password}#{self.class.pepper}", bcrypt.salt)
Devise.secure_compare(password, encrypted_password)
end
Здравствуйте рационализировать. Можете ли вы сообщить нам, как вы решили эту проблему? –