2015-02-14 3 views
0

У нас есть приложение Ruby on Rails, в котором используется самородка Devise для обработки пользователей, включая создание и аутентификацию паролей пользователей. Очевидно, пароли зашифрованы в базе данных MySQL. Мы используем настройки Devise для того, как он шифрует пароль. Теперь у нас есть еще одно небольшое приложение с одной и той же локальной сетью, которое (приложение C# ASP.NET) должно аутентифицироваться с помощью пользователя/пароля непосредственно с базой данных, чтобы выполнять некоторые операции только для чтения.Ruby on Rails Разработать зашифрованный пароль, прочитанный с C#. NET

Как мы можем лучше всего имитировать то, что Devise делает для аутентификации пользователя/пароля в приложении C# ASP.NET по тем же данным в базе данных MySQL?

По сути, мне нужно выяснить, как воссоздать действующий пароль Devise? метод в C# .NET

http://www.rubydoc.info/github/plataformatec/devise/Devise/Models/DatabaseAuthenticatable#valid_password%3F-instance_method

# 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 
+0

Здравствуйте рационализировать. Можете ли вы сообщить нам, как вы решили эту проблему? –

ответ

0

Я думаю, что я понимаю вопрос правильно. То, что вы хотите сделать, - это аутентификация пользователя в вашем приложении .NET с использованием учетных данных в вашем приложении rails. Если это так, я бы предложил реализовать сервер oauth на рубиновой стороне и клиент в вашем .NET-коде. Что касается сервера у вас есть несколько камней, которые обеспечивают эту функциональность, включая

  1. oauth-ruby
  2. doorkeeper
  3. oauth2-provider
+0

Спасибо за ваш вклад в то, как создать формальный процесс аутентификации присяги между приложениями, я, безусловно, вижу, что мы используем что-то подобное, если мы решили пойти по этому маршруту, а oauth идеально подходит для приложений, которые находятся в разных сетях. Однако в этом случае мы не рассматриваем такие сложные, сложные и постоянные изменения, как для приложения rails, так и для приложения C#. Я действительно хочу использовать приложение C#, чтобы иметь возможность использовать одну и ту же базу данных (она находится в той же локальной сети), особенно на этом этапе, это прототип, и мы хотим как можно меньше изменений, чтобы продемонстрировать его. – Streamline

Смежные вопросы