ユーザー名とパスワードのテキスト ボックスを使用して、クリック時にユーザー名とパスワードがテーブル内にあることを確認しようとしています。以下は私がボタンのために持っているものです。可能であれば、誰かがこれをレビューして、どこが間違っているのか教えてもらえますか? 私はこれに不慣れで、実際にいくつかのアドバイスを使用できます。
ご協力ありがとうございます。
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 の 3 つのテーブルを作成することです。UserRole テーブルは、ユーザーを複数のロールにリンクすることを想定しています。最初の列には、ユーザーへの参照が含まれます。2 番目の列には、ロールへのリンクが含まれます。
2つのWebページを作成するとします。ユーザーとロールに関するすべての情報を含むテーブルを持つものと、テーブルに接続し、入力された情報がテーブルの内容と一致することを確認するためのユーザー名とパスワードを持つものです。
以下は私の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),
);