-1

ユーザー名とパスワードのテキスト ボックスを使用して、クリック時にユーザー名とパスワードがテーブル内にあることを確認しようとしています。以下は私がボタンのために持っているものです。可能であれば、誰かがこれをレビューして、どこが間違っているのか教えてもらえますか? 私はこれに不慣れで、実際にいくつかのアドバイスを使用できます。

ご協力ありがとうございます。

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),
 );
4

1 に答える 1