Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.11.2021, 21:53   #1
Alena16
Пользователь
 
Регистрация: 12.11.2021
Сообщений: 16
Вопрос Форма авторизации, не получается выбрать нужную запись для сравнения

Всем привет. Проблема такая: есть бд, есть форма авторизации, нужно чтобы при верных данных логина и пароля выводилось сообщение об успешном входе. Проблема в том, что когда я делаю запрос и закидываю его результат в стринговую переменную, то значение переменной неверное. Допустим, есть 2 пользователя x1 и x2 и их пароли pas1 и pas2, так вот, при входе с данными x1 pas1 и x1 pas2 вход проходит успешно, хотя это недопустимо. Также вход проходит по аналогии у 2 пользователя с данными x2 pas1 и x2 pas2. Как поправить код? Нужно использовать приницпиально эти конструкции. Мучаюсь уже долго, может поможете.
Код:
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);
            }
            }

Последний раз редактировалось Alena16; 12.11.2021 в 21:58.
Alena16 вне форума Ответить с цитированием
Старый 13.11.2021, 02:49   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

А разве не сам запрос должен содержать вопрос, есть ли пользователь с такой парой "логин"-"пароль"? А вы их по отдельности проверяете.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 21.11.2021, 19:21   #3
shturman1387
Форумчанин
 
Аватар для shturman1387
 
Регистрация: 12.06.2012
Сообщений: 110
По умолчанию

Ну надо в дебаге а смотреть. Что сразу бросается в глаза, то это какая-то "дикая" реализация выборки через LINQ. А дальше вы выбираете из контекcта UserLogin и UserPassword, а потом в if опять проверяете - это масло маслянное. Иными словами тут в чем угодно может быть проблема.

Последний раз редактировалось shturman1387; 22.11.2021 в 00:40.
shturman1387 вне форума Ответить с цитированием
Старый 08.12.2021, 20:43   #4
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,520
По умолчанию

Код:
if (Data.vtbBDEntities.GetContext().users
                    .FirstOrDefault(user => user.login == LoginTextBox.Text && user.password == PasswordBox.Password) == null)
{
  MessageBox.Show("Вход не выполнен!", "Ошибка!", MessageBoxButton.OK, MessageBoxImage.Error);
}
else
{
  MessageBox.Show("Успешный вход!", "Инфо", MessageBoxButton.OK, MessageBoxImage.Information);
}
pu4koff вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[В закладки] [Окно ответа] 1 (permalink) Использование @EXPORT и @EXPORT_OK AndreyK Perl 0 21.10.2020 13:49
/ 0 Регистрация: 07.08.2020 Сообщений: 2 [В закладки] [Окно ответа] 1 (permalink) Проблемы со Sprite Editor/Sprite Editor размывает картинки danil444 Gamedev - cоздание игр: Unity, OpenGL, DirectX 0 10.08.2020 07:28
Регистрация: 13.05.2020 Сообщений: 1 [В закладки] [Окно ответа] 1 (permalink) Добавить шрифт в визуальный редактор TinyMCE v4.6.2 MyNam WordPress и другие CMS 0 13.05.2020 20:50
[В закладки] [Окно ответа] 1 (permalink) Добавить метод, который пополняет список одной модели экземплярами второй Lucky63 ASP.NET 0 07.07.2019 19:59
[В закладки] [Окно ответа] #1 Какие ЯП нужно освоить что бы написать игровую рулетку? PoUiLy JavaScript, Ajax 3 31.05.2018 12:42