Daniel Andrei Popescu Ответов: 1

Как должен выглядеть мой метод автоматической аутентификации?


Привет,

I have a login form which has only one field for the password.My approach is using an RFID reader that reads values from the NFC tag and display it in a textbox.I have passwordbox that fills up with the SN of the card when the user swipes the card of the card reader.This happening,in the passwordbox will apear the SN and I want to check the SN with the values from the db.If the value exists,the user will automatically enter in the system without pressing any button or doing any sort of action.I have my method for now that checks the value,but i don't know how to do it so that it will automatically log in the user into the system.I've searched for examples in hope that I will find some relevant connection to what I have,but unfortunately I couldn't find anything suitable in my case.My RFID reader is working perfectly,my basic method works fine.Could someone please give me an example of how this should be made?I'm using WPF with MVVM and db first.Thank you in advance!

Что я уже пробовал:

Это мой основной метод входа в систему:
public void SubmitButton(object param)
     {

         SqlConnection conn = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\User\source\repos\VIAApp2Demo\VIAApp2Demo\DB\DatabaseStudents.mdf;Integrated Security=True;Connect Timeout=30");
         try
         {


             if (conn.State == System.Data.ConnectionState.Closed)
                 conn.Open();
             String query = "SELECT COUNT (*) FROM Login where pwd=@pwd";
             SqlCommand cmd = new SqlCommand(query, conn);
             cmd.CommandType = CommandType.Text;



             SqlParameter Pwd = cmd.Parameters.AddWithValue("@pwd", SqlDbType.Int);
             //cmd.Parameters["@pwd"].Value = _pwd.pwd;
             cmd.Parameters["@pwd"].Value = TestPassword;
             if (Pwd.Value == null)
             {
                 Pwd.Value = DBNull.Value;
             }

             int count = Convert.ToInt32(cmd.ExecuteScalar());
             if (count > 0)

             {
                 MainWindow main = new MainWindow();
                 main.Show();

             }
             else
             {
                 MessageBox.Show("Password is incorrect!");
             }

         }

         catch (Exception ex)
         {
             MessageBox.Show(ex.Message);
         }
         finally
         {
             conn.Close();
         }
     }

F-ES Sitecore

Вам нужно будет определить событие, которое вы можете использовать для запуска автоматического входа в систему. У нас нет доступа к вашему оборудованию, мы не знаем, как оно работает, мы не знаем, какие у вас серийные номера, поэтому мы не можем точно сказать. Если он запускает события нажатия клавиш в текстовом поле, вы можете прослушать это событие, и если серийный номер всегда одинаковой длины, вы можете войти в систему, когда эта длина будет достигнута. Это всего лишь одна идея, как я уже сказал, она зависит от вашей конкретной реализации.

1 Ответов

Рейтинг:
2

#realJSOP

Итак, вы хотите войти в систему сразу же после того, как проведете пальцем по их карте? Это довольно небезопасно, потому что любой может стащить карту (даже чужую карту).

Настоятельно рекомендуется двухфакторная аутентификация (то, что у вас есть - карта, и то, что вы знаете - ваш пароль).

Если это не то, что вам нужно, измените свой вопрос.

РЕДАКТИРОВАТЬ ====================

Поскольку вы используете MVVM, вы можете подключить PropertyChanged событие в вашей модели представления для свойства, содержащего серийный номер, и выполните любую обработку, необходимую при запуске этого события для этого свойства.


Daniel Andrei Popescu

Привет,
Это не зависит от того, чего я хочу.Я стажер в университете, где учусь, и сотрудники там сказали мне, что именно такой они хотят видеть систему.Я также сделал обычную аутентификацию на случай, если кто-то случайно забудет карту.Приложение используется только преподавателями,и это их ответственность, если такие вещи происходят.Каждая карта имеет внутри серийный номер, и она уникальна.В этом случае никто не может получить доступ к системе,так как только у лекторов есть карта, и на каждой карте лектора есть свой серийный номер.

#realJSOP

Да, но, как я уже сказал, карта может быть потеряна/украдена и использована кем-то, кто не должен иметь к ней доступа. Просто говорю...

В любом случае, я собираюсь изменить свой ответ.

Daniel Andrei Popescu

Спасибо,я понимаю,что вы говорите,но это зависит не от меня, а от моего босса, так что любая помощь будет оценена по достоинству :)