powered by simpleCommunicator - 2.0.19     © 2024 Programmizd 02
Map
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Форма авторизации, не получается выбрать нужную запись для сравнения
9 сообщений из 9, страница 1 из 1
Форма авторизации, не получается выбрать нужную запись для сравнения
    #40111558
AlenaLis16
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет. Проблема такая: есть бд, есть форма авторизации, нужно чтобы при верных данных логина и пароля выводилось сообщение об успешном входе. Проблема в том, что когда я делаю запрос и закидываю его результат в стринговую переменную, то значение переменной неверное. Допустим, есть 2 пользователя x1 и x2 и их пароли pas1 и pas2, так вот, при входе с данными x1 pas1 и x1 pas2 вход проходит успешно, хотя это недопустимо. Также вход проходит по аналогии у 2 пользователя с данными x2 pas1 и x2 pas2. Как поправить код? Нужно использовать приницпиально эти конструкции. Мучаюсь уже долго, может поможете.
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
private void EnterButtonClick(object sender, RoutedEventArgs e)
        {
            try
            {
                string UserLogin = Data.vtbBDEntities.GetContext().users
                    .Select(user => user.login)
                    .Select(login => login)
                    .Where(login => login == LoginTextBox.Text).First();

                string UserPassword = Data.vtbBDEntities.GetContext().users
                        .Select(users => users.password)
                        .Select(password => password)
                        .Where(password => password == PasswordBox.Password).First();

                if (UserLogin == LoginTextBox.Text && UserPassword == PasswordBox.Password)
                {
                    MessageBox.Show("Успешный вход!", "Инфо", MessageBoxButton.OK, MessageBoxImage.Information);
                } else
                {
                    MessageBox.Show("Вход не выполнен!", "Ошибка!", MessageBoxButton.OK, MessageBoxImage.Error);
                }
            }
            catch (Exception)
            {
                MessageBox.Show("Вход не выполнен!", "Ошибка!", MessageBoxButton.OK, MessageBoxImage.Error);
            }
            }
...
Рейтинг: 0 / 0
Форма авторизации, не получается выбрать нужную запись для сравнения
    #40111621
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
4.
5.
if (Data.vtbBDEntities.GetContext().users.Any(user => user.login == LoginTextBox.Text
      && user.password == PasswordBox.Password))
{
...
}


Но
1) Нельзя хранить пароли в БД в открытом виде
2) Логин сравнивают обычно без учета заглавных/строчных, а пароль - обязательно с учетом
3) В 2021 году надо использовать async и await ... AnyAsync(...)
...
Рейтинг: 0 / 0
Форма авторизации, не получается выбрать нужную запись для сравнения
    #40111702
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

пароли и логины для доступа к БД лучше вообще не использовать. имхо.
не знаю как сейчас, а в 2000 mssql для basic авторизации пароль взламывал на калькуляторе XOR'ом.
лучше integrated security при любых раскладах, имхо.
...
Рейтинг: 0 / 0
Форма авторизации, не получается выбрать нужную запись для сравнения
    #40111726
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Mejtes
пароли и логины для доступа к БД лучше вообще не использовать. имхо.
ну тут-то речь не идет о пароле доступа к БД очевидно
...
Рейтинг: 0 / 0
Форма авторизации, не получается выбрать нужную запись для сравнения
    #40111728
AlenaLis16
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Roman Mejtes, не-не, в этом вопросе я делаю проект wpf, и логин/пароль просто для входа в приложение
...
Рейтинг: 0 / 0
Форма авторизации, не получается выбрать нужную запись для сравнения
    #40111729
AlenaLis16
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, спасибо вам огромное, выручили, а то всю голову сломала уже
...
Рейтинг: 0 / 0
Форма авторизации, не получается выбрать нужную запись для сравнения
    #40111739
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlenaLis16,

для хранения пароля в памяти используй SecureString, если пароль надо хранить. используй хранилище Windows, это надежно и безопасно. Хранить сам пароль в памяти не стоит, после авторизации, его лучше "освободить", тогда SecureString затрет все свое содержимое в памяти.
...
Рейтинг: 0 / 0
Форма авторизации, не получается выбрать нужную запись для сравнения
    #40111746
AlenaLis16
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Roman Mejtes, спасибо огромное ещё раз. Нас мало чему учат, так что вот как могу по максимуму сама пытаюсь обучиться)
...
Рейтинг: 0 / 0
Форма авторизации, не получается выбрать нужную запись для сравнения
    #40111783
SergiiW
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MSМы не рекомендуем использовать SecureString класс для новой разработки. Дополнительные сведения см. в разделе SecureString не следует использовать в GitHub.
MSВместо использования SecureString для защиты паролей рекомендуется использовать непрозрачный маркер для учетных данных, хранящихся за пределами процесса.
https://docs.microsoft.com/ru-ru/dotnet/api/system.security.securestring?view=net-5.0
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Форма авторизации, не получается выбрать нужную запись для сравнения
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (0):
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]