MySQL をデータベースとして使用する VB でアプリケーションを作成しています。とfrmMain
というフォームがありfrmLogin
ます。ログインすると、ユーザーが正しいユーザー名とパスワードを入力したかどうか、ログインフォームがデータベースをチェックします。frmMain
に戻って、情報 (ID、ログイン名、役割など) を文字列 (またはより安全なもの) として渡したいのですfrmMain
が、それを行う最善の方法がわかりません。
これが私のコードですfrmLogin
(SQLインジェクションについて知っています):
Private Sub btnLogin_Click(sender As System.Object, e As System.EventArgs) Handles btnLogin.Click
Dim loginResult As String
If String.IsNullOrEmpty(TextGebruikersNaam.Text) Or String.IsNullOrEmpty(TextGebruikersPass.Text) Then
MsgBox("Voer uw gebruikersnaam en wachtwoord in om in te loggen. ", MsgBoxStyle.Exclamation, "Foutmelding")
TextGebruikersNaam.Focus()
Else
Dim newPass As String
newPass = HashString.getSHA1Hash(TextGebruikersPass.Text)
loginResult = SQLHook.Counter("SELECT COUNT(*) FROM tblgebruikers WHERE GebruikersNaam='" & TextGebruikersNaam.Text.Replace("'", "''") & "' AND GebruikersPass='" & newPass.Replace("'", "''") & "'")
If loginResult = 1 Then
' Login is cewl, now set some strings and unload this form so user
' could continue on frmMain.
Else
MsgBox("De gebruikersnaam of wachtwoord is onjuist.", MsgBoxStyle.Exclamation, "Foutmelding")
TextGebruikersPass.Text = ""
TextGebruikersPass.Focus()
End If
End If
End Sub
(例)ユーザー名とロールを含む文字列を設定する安全な方法はありますか(データベース内にも「GebruikersRole」行としてあります。
ご協力ありがとうございました。