asp.net webformで簡単なmysql認証ログインページを作成しようとしています。
ページを実行しようとするたびに同じエラーが発生していますが、解決方法はわかりません。ここでエラーがある:Visual Basicログインページでエラーが発生しました(エラーBC30506 Handles句にWithEvents ....が必要です)
Error BC30506 Handles clause requires a WithEvents variable defined in the containing type or one of its base types. Test1 C:\Users\PC\Desktop\Test1\Account\Login.aspx.vb 10 Active
ここでエラーの背後にある私のコードは次のとおりです。
Protected Sub Login_Authenticate(sender As Object, e As AuthenticateEventArgs) Handles Login.Authenticate
Dim Username As String = Login.UserName
Dim password As String = Login.Password
Dim SQLCommand As String = "SELECT level FROM users WHERE (username= '" &
Username & "' AND pw = '" & password & "')"
Dim level As String
Dim con As MySqlConnection = New MySqlConnection()
con.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings("test").ToString()
Dim cmd As MySqlCommand = New MySqlCommand(SQLCommand, con)
con.Open()
If cmd.ExecuteScalar() = Nothing Then
level = ""
Else
level = cmd.ExecuteScalar().ToString()
End If
con.Close()
If level = "B" Or level = "G" Then
Session("Level") = level
Session("User") = Username
FormsAuthentication.RedirectFromLoginPage(Username, False)
Else
Login.FailureText = "Try Again"
End If
End Sub
私は=
を代わりに使用するIf cmd.ExecuteScalar() = Nothing Then
に「です」しかし、ので、私は最初にそれがだと思いましたそれを変更しても実際には影響はありません。
あなたの 'aspx'を表示してください... – Codexer
' WHERE(username = ''&ユーザー名& "'AND pw ='"&password& "')" 'これは多くのレベルで間違っています。 [SQLインジェクション](https://xkcd.com/327/)?あなたは真剣に平文のパスワードを保存していますか? –