Как искать базу данных в Visual Studio?(С #) - PullRequest
0 голосов
/ 06 июня 2019

Я работаю над сайд-проектом (студент, а не домашняя работа, просто праздничное любопытство), который будет моим простым персональным менеджером паролей / хранилищем.Это будет приложение для Windows.Я хочу, чтобы он поддерживал более одного пользователя.Теперь, когда у меня есть экран входа в систему и другие функции, я изо всех сил пытаюсь найти простой и эффективный способ проверить правильность логина и пароля пользователя.Я храню информацию в простой таблице SQL под названием Users (рисунок ниже).Теперь я хочу получить результат bool, находятся ли эти две строки (имя пользователя, пароль) в базе данных.Я включу код и скриншоты ниже.Любая помощь приветствуется!

PS: я довольно хорошо знаком с mySQL (Oracle), я просто не могу найти хороший способ сделать это, не будучи смешным.:)

namespace KeyLocker.Database {
[Serializable]
public class UserDatabase {
    public void AddUser(string username,string password,string question,string answer) {
        using(var db = new KeyLockerContext()) {
            db.Add(new User { Username = username,Password = password,SecurityQuestion = question,SecurityAnswer = answer });
            db.SaveChanges();
        }
    }

    public bool CheckUser(string username,string password) {
        using(var db = new KeyLockerContext()) {
            /*here i need to find out if username is present in database
              and if it is, i need to find out if the password is correct*/
        }
    }
}

}

Таблица пользователей ScreenShot

Детали таблицы SQL

1 Ответ

1 голос
/ 06 июня 2019

На первый взгляд кажется, что самый простой код для реализации вашей идеи:

public bool CheckUser(string username,string password) {
    using(var db = new KeyLockerContext()) {

        // Check if that combination already exists in DB.
        var result = db.Users.Where(x => x.Username == username && x.Password == password).SingleOrDefault();

        // See if result has a value, SingleOrDefault() returns null if no match
        return (result == null);
    }
}

EDIT / Disclaimer: так как кажется, что есть некоторая путаница, это идея о том, как быстро проверить, существует ли объект с определенными значениями в БД, а не полная библиотека аутентификации. Вы никогда не должны хранить пароли в открытом виде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...