Member 12905345 Ответов: 1

Как изменить пароль в SQL через vb. Net


Всем доброго дня. Я работаю со своей диссертацией, у меня есть база данных и таблица в sql serve 2012.. Таблица - это tblLogin, где были сохранены временные имя пользователя и пароль. Я хочу изменить пароль через vb. net.. Я собираюсь ввести текущее имя пользователя и пароль, если они совпадают в sql, я могу изменить текущий пароль, введя новый пароль. Например:

Имя пользователя: admin
Пароль: 1233

в VB. net design у меня есть:

Входное текущее имя пользователя: admin
Входной текущий пароль : 1234
Введите Новый Пароль: 4321
Повторите Пароль: 4321

Затем у меня есть кнопка OK, которая сохранит новый пароль..

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

Система Импорта.Данных.Поставщики sqlclient


Публичный Класс MyAcct

Общественные ДР в качестве объекта sqldatareader

Private Sub OKAY_Click (sender As Object, e As EventArgs) обрабатывает нормально.Щелчок

Дим objConnection как объект sqlconnection = новое sqlconnection("сервер=(на localdb)\MSSQLLocalDB;базы данных=ЦМКБ;Комплексная безопасность=истина")
возражение.Открыть()
Дим objCommand как sqlcommand объект = новый sqlcommand, который
objCommand.Соединение = objConnection
objCommand.CommandText = ("SELECT * FROM tblLogin WHERE Username = '" & txtUN.Текст & "'и пароль = '" & txtPW.Текст &"'")
dr = objCommand.Метода executereader
Если доктор.Прочитать() = Истина Тогда
Дим objConn как объект sqlconnection = новое sqlconnection("сервер=(на localdb)\MSSQLLocalDB;базы данных=ЦМКБ;Комплексная безопасность=истина")
Дим objCmd как sqlcommand объект = новый sqlcommand, который
objCmd.Соединение = objConn
objCmd.CommandText = ("UPDATE tblLogin WHERE Username = '" & txtNUN.Текст & "'и пароль = '" & txtNPW.Текст &"'")


Дим и как строку
ans = MsgBox("новая безопасность сохранена!", vbOKOnly + vbInformation)

Если ans = vbOKOnly, то
Добро пожаловать.Покажите()
Конец, Если

Ещё
Дим и как строку
ans = MsgBox ("неверное текущее имя Пользователя или пароль", vbOKOnly + vbCritical)
Если ans = vbOKOnly, то
Меня.Показать()
txtUN.Фокус()
Конец, Если
Конец, Если
Конец Подводной Лодки

Peter_in_2780

.. и когда вы заставите его работать, у вас будет отличный пример того, как не управлять паролями.

1 Ответов

Рейтинг:
7

OriginalGriff

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

Во-вторых, SqlConnection, SqlCommand и связанные с ними объекты являются дефицитными ресурсами - вы должны избавиться от них, когда закончите с ними.

В-третьих, не используйте MsgBox в приложениях VB .NET, это устаревшее похмелье VB6, и оно было заменено классом MessageBox в .NET V1. 0

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

В-пятых, посмотрите на свой код!

Dim ans As String
ans = MsgBox("New Security have been saved!", vbOKOnly + vbInformation)

If ans = vbOKOnly Then
Welcome.Show()
End If
Учитывая, что вы показываете только кнопку OK, какое еще значение вы ожидаете, что окно сообщения будет способно вернуть?

Кроме того, никогда не храните пароли в открытом тексте - это серьезная угроза безопасности. Здесь есть некоторая информация о том, как это сделать: Хранение паролей: как это сделать.[^]- это на C#, но код довольно прост и очевиден, и существуют онлайн-конвертеры, чтобы изменить его на VB: Преобразователь Кодов[^]


Peter_in_2780

Ваша доброта и терпение намного превосходят мои...