2

私はvb.netでサイトを開発しました(義理の兄弟の助けを借りて)。ページが数分間アイドル状態のときにログイン画面で未処理の例外エラーが発生することを除いて、ロールアウトする準備がほぼ整っています。私はプログラマーではなく、vb.net の初心者です :( どんな助けでも大歓迎です。これが私の最初の投稿であるため、私の投稿の何かがサイトの標準に準拠していない場合は申し訳ありません。:)

なぜこれが起こっているのかわかりません。login_buttonClick で実行されるコードは次のとおりです。

Protected Sub LoginWizard_FinishButtonClick(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.WizardNavigationEventArgs) Handles LoginWizard.FinishButtonClick

    Dim oUsername As String = txtUsername.Text
    Dim oPassword As String = txtPassword.Text

    Dim oPath As String = Server.MapPath("App_Data/IOFR.mdb")
    Dim oValid As Boolean = False

    Dim oReader As System.Data.OleDb.OleDbDataReader = Nothing
    Dim oConnection As System.Data.OleDb.OleDbConnection = Nothing

    Dim oName As String = ""
    Dim oOrg As String = ""
    Dim oUserId As Integer = 0
    Dim oActiveAcc As String = ""
    Dim oSessionExpire As Integer = 0

    Try
        oConnection = New System.Data.OleDb.OleDbConnection(String.Format("Provider=Microsoft.Jet.OLEDB.4.0; Data Source={0}; Jet OLEDB:Database Password=EdmundColin13", oPath))
        oConnection.Open()

        Dim ipAddress As String = Request.ServerVariables("REMOTE_ADDR")
        Dim cmd As New SqlCommand

        Dim oParams As New List(Of System.Data.OleDb.OleDbParameter)
        oParams.Add(New System.Data.OleDb.OleDbParameter("@pmUsername", oUsername))
        oParams.Add(New System.Data.OleDb.OleDbParameter("@pmPassowrd", oPassword))

        Dim oCommand As New System.Data.OleDb.OleDbCommand("SELECT ID, [Name], Organisation, ActiveAccount, [Password] FROM Users WHERE [Username] = @pmUsername AND [Password] = @pmPassword", oConnection)
        oCommand.Parameters.AddRange(oParams.ToArray)
        oReader = oCommand.ExecuteReader()

        If oReader.Read() Then
            oValid = True
            oName = oReader.GetString(oReader.GetOrdinal("Name"))
            oActiveAcc = oReader.GetString(oReader.GetOrdinal("ActiveAccount"))
            oOrg = oReader.GetString(oReader.GetOrdinal("Organisation"))
            oPassword = oReader.GetString(oReader.GetOrdinal("Password"))
            oUserId = oReader.GetInt32(oReader.GetOrdinal("ID"))
            oSessionExpire = oReader.GetInt32(oReader.GetOrdinal("SessionExpire"))
        End If
    Catch ex As Exception
    Finally
        If Not oReader Is Nothing Then
            If Not oReader.IsClosed Then
                oReader.Close()
            End If
            oReader = Nothing
        End If

    End Try
    If oValid And Not String.Equals(txtPassword.Text, oPassword) Then
        oValid = False
    End If

    If oValid Then

        If oActiveAcc = "No" Then
            Response.Redirect("~/DisabledAccount.aspx")
            Return
        End If

        Session("username") = txtUsername.Text
        Session("name") = oName
        Session("org") = oOrg

        'Generate session id and store it in session
        Dim uniquesessionid As String = Guid.NewGuid().ToString()
        Session("uid") = uniquesessionid

        Dim oCommandSession As New System.Data.OleDb.OleDbCommand("UPDATE Users SET SessionId = @pmid, SessionExpire = '" & DateTime.Now.AddHours(2).ToString() & "' WHERE [ID] = @pmUserid", oConnection)
        oCommandSession.Parameters.Add(New System.Data.OleDb.OleDbParameter("@pmid", uniquesessionid))
        oCommandSession.Parameters.Add(New System.Data.OleDb.OleDbParameter("@pmUserid", oUserId))
        oCommandSession.ExecuteNonQuery()
        Response.Redirect("~/Home.aspx?login=true")
    Else
        txtUsername.BorderColor = Drawing.Color.Red
        txtUsername.BackColor = Drawing.Color.Red
        txtPassword.BorderColor = Drawing.Color.Red
        FailedLogin.Visible = True
    End If

    If Not oConnection Is Nothing Then
        If oConnection.State = Data.ConnectionState.Open Then
            oConnection.Close()
        End If
    End If
End Sub

4

1 に答える 1

0

皆さんありがとう。これで問題は解決したようです。

EnableViewStateMAC="False"

于 2013-11-12T13:46:03.640 に答える