2016-06-12 20 views
0

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

に「です」しかし、ので、私は最初にそれがだと思いましたそれを変更しても実際には影響はありません。

+0

あなたの 'aspx'を表示してください... – Codexer

+0

' WHERE(username = ''&ユーザー名& "'AND pw ='"&password& "')" 'これは多くのレベルで間違っています。 [SQLインジェクション](https://xkcd.com/327/)?あなたは真剣に平文のパスワードを保存していますか? –

答えて

0

このコードBC30506:句を使用すると、

例えば

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %> 
CodeFile = "Default.aspx.vb" を配置する必要があり、あなたのpageディレクティブに含むタイプ

で定義されてWITHEVENTS変数を必要とハンドル

関連する問題