Используя текстовые поля с именем пользователя и паролем, я пытаюсь проверить, что имя пользователя и пароль находятся в таблице по щелчку. Ниже приводится то, что у меня есть для кнопки. Если возможно, кто-то может это рассмотреть и сказать мне, где я ошибаюсь? Я новичок в этом и могу действительно использовать некоторые советы.Проверьте имя пользователя и пароль onclick в Visual Studio
Благодарим за помощь, мы очень благодарны!
Partial Class _Default
Inherits System.Web.UI.Page
Protected Sub butSubmit_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles butSubmit.Click
Dim myReader As Data.SqlClient.SqlDataReader
Dim mySqlConnection As Data.SqlClient.SqlConnection
Dim mySqlCommand As Data.SqlClient.SqlCommand
'Establish the SqlConnection by using the configuration manager to get the connection string in our web.config file.
mySqlConnection = New Data.SqlClient.SqlConnection(ConfigurationManager.ConnectionStrings("ConnectionString").ToString())
Dim sql As String = "SELECT password FROM MyUsers WHERE username = '" & Me.logon_id.Text & "'"
mySqlCommand = New Data.SqlClient.SqlCommand(sql, mySqlConnection)
Try
mySqlConnection.Open()
myReader = mySqlCommand.ExecuteReader()
If (myReader.HasRows) Then
myReader.Read()
Dim password As String = myReader("password")
If (password = Me.user_password.Text) Then
'Open page with users and roles
Dim message As String = "Correct password"
Dim style As MsgBoxStyle = MsgBoxStyle.OkOnly
Dim title As String = "Authenticated"
MsgBox(message, style, title)
End If
End If
Catch ex As Exception
Console.WriteLine(ex.ToString())
Finally
If Not (myReader Is Nothing) Then
myReader.Close()
End If
If (mySqlConnection.State = Data.ConnectionState.Open) Then
mySqlConnection.Close()
End If
End Try
End Sub
End Class
=========================================== ===================
Обновление:
Спасибо за Ваше сообщение. Благодарим вас за советы относительно создания хэша пароля. Это имеет смысл, но это начинающий проект, и я не думаю, что это было частью требований.
Полный проект состоит в том, чтобы создать три таблицы: MyUsers, MyRole & UserRoles. В таблице UserRole предполагается связать пользователя с несколькими ролями. Первый столбец будет содержать ссылку на пользователя. Второй столбец будет содержать ссылку на роль.
Я предположил, что создал 2 веб-страницы. Один с таблицей, которая содержит всю информацию о пользователе и там роли, а вторая, которая имеет имя пользователя и пароль, которые предположительно должны подключаться к таблице, и убедитесь, что введенная информация соответствует тому, что находится в таблице.
Ниже мой SQL-код:
user_description VARCHAR(100) NOT NULL,
user_password VARCHAR(50) NOT NULL,
);
INSERT INTO MyUsers (user_logon_id, user_full_name, user_description, user_password) VALUES
('mcoby', 'Mary Coby', 'Class Instructor', 'password');
CREATE TABLE MyRole
(
myrole_id INT IDENTITY(1,1)PRIMARY KEY,
role_name VARCHAR(50) NOT NULL,
role_description VARCHAR(100) NOT NULL,
);
INSERT INTO MyRole (role_name, role_description) VALUES ('administrator', ' Administrator of the web site');
INSERT INTO MyRole (role_name, role_description) VALUES ('user', ' User of the web site');
CREATE TABLE UserRoles
(
user_id int FOREIGN KEY REFERENCES MyUsers(id),
role_id int FOREIGN KEY REFERENCES MyRole(myrole_id),
);
Без дополнительной информации о том, что представляет собой настоящая проблема: проголосовали за закрытие, чтобы его переместили на [codereview.se] – hometoast