Javascript 将用户重定向到基于页面的适当位置

Javascript 将用户重定向到基于页面的适当位置,javascript,asp.net,vb.net,Javascript,Asp.net,Vb.net,我在这里看到了很多重定向问题,但我的问题略有不同 请参阅下面的代码 Sub CmdLogin_Click(ByVal Sender As Object, ByVal E As EventArgs) Handles CmdLogin.Click Dim MySQL As String Dim MyCount As SqlCommand Dim IntUserCount As Integer Dim redirect As String = Request

我在这里看到了很多重定向问题,但我的问题略有不同

请参阅下面的代码

    Sub CmdLogin_Click(ByVal Sender As Object, ByVal E As EventArgs) Handles CmdLogin.Click

    Dim MySQL As String
    Dim MyCount As SqlCommand
    Dim IntUserCount As Integer

    Dim redirect As String = Request.QueryString("redirect")
    Using myConnectionString As SqlConnection = New SqlConnection(ConfigurationManager.ConnectionStrings("constr").ConnectionString)

        'Dim myConnection As New SqlConnection(myConnectionString)
        Try
            myConnectionString.Open()
            MySQL = "SELECT COUNT(*) FROM EmployeeData WHERE empnum = '" & Replace(txtEmail.Text, "'", "''") & "' and empnum = '" & txtPassword.Text & "' "

            MyCount = New SqlCommand(MySQL, myConnectionString)
            IntUserCount = MyCount.ExecuteScalar()
            Dim cmd As New SqlCommand("Select Department, unit, oldtitle, EmpName,newtitle,empnum, DBM,NewClassification,grade,Email,zip FROM EmployeeData Where empnum = @empnum and zip=@Password ", myConnectionString)
            cmd.Parameters.AddWithValue("@Password", txtPassword.Text)
            cmd.Parameters.AddWithValue("@empnum", txtEmail.Text)
            Dim dr As SqlDataReader = cmd.ExecuteReader()
            If dr.Read() Then
                Session("fullname") = dr("empName")
                Session("dept") = dr("Department")
                Session("password") = dr("zip")
                Session("empNum") = dr("empnum")

                ' Re-direct to original page
                If redirect IsNot Nothing AndAlso redirect.Length > 0 Then
                    Response.Redirect(redirect)
                Else
                    Response.Redirect("~/benefitspage.aspx")
                End If
            Else
                lblMsg.ForeColor = System.Drawing.Color.Red
                lblMsg.Text = "Invalid username password combination"
            End If

        Catch ex As SqlException
            Response.Write("<SCRIPT LANGUAGE='JavaScript'>alert('" + ex.Message + "')</SCRIPT>")
        Finally
            If myConnectionString IsNot Nothing AndAlso myConnectionString.State = ConnectionState.Open Then
                myConnectionString.Close()
            End If
        End Try
    End Using
End Sub
Sub-CmdLogin\u单击(ByVal Sender作为对象,ByVal E作为事件参数)处理CmdLogin。单击
将MySQL设置为字符串
Dim MyCount As SqlCommand
Dim IntUserCount为整数
Dim重定向为String=Request.QueryString(“重定向”)
将myConnectionString用作SqlConnection=新的SqlConnection(ConfigurationManager.ConnectionString(“constr”).ConnectionString)
'Dim myConnection作为新的SqlConnection(myConnectionString)
尝试
myConnectionString.Open()
MySQL=“从EmployeeData中选择COUNT(*),其中empnum=”&Replace(txtmail.Text、”、“”)&“和empnum=”&txtPassword.Text&“”
MyCount=新的SqlCommand(MySQL,myConnectionString)
IntUserCount=MyCount.ExecuteScalar()
Dim cmd作为新的SqlCommand(“选择部门、单位、旧标题、EmpName、newtitle、empnum、DBM、NewClassification、grade、Email、来自EmployeeData的zip,其中empnum=@empnum和zip=@Password”,myConnectionString)
cmd.Parameters.AddWithValue(“@Password”,txtPassword.Text)
cmd.Parameters.AddWithValue(“@empnum”,txtEmail.Text)
作为SqlDataReader=cmd.ExecuteReader()的Dim dr
如果Read博士()那么
会话(“全名”)=dr(“empName”)
会话(“部门”)=博士(“部门”)
会话(“密码”)=dr(“zip”)
会话(“empNum”)=dr(“empNum”)
'我们直接转到原始页面
如果redirect不是Nothing,也不是redirect.Length>0,那么
响应.重定向(重定向)
其他的
Response.Redirect(“~/benefitspage.aspx”)
如果结束
其他的
lblMsg.ForeColor=System.Drawing.Color.Red
lblMsg.Text=“无效的用户名密码组合”
如果结束
捕获ex作为SqlException
响应。写入(“警报(““+ex.Message+”)”)
最后
如果myConnectionString不是Nothing,也不是myConnectionString.State=ConnectionState.Open,那么
myConnectionString.Close()
如果结束
结束尝试
终端使用
端接头
用户输入用户名/密码

如果成功通过身份验证,用户将被重定向到向用户显示其福利权利的页面

然后,用户单击该页面底部的链接继续:

<div align="center"> <a href="ReviewProcedures.aspx?user=session("fullname")Continue >> </a></div>

单击后,用户将进入另一个页面,该页面显示如何对其福利包进行更改申请的说明

阅读说明后,用户单击另一个链接转到页面以申请更改:

继续上诉页面>>

到目前为止,一切顺利

问题是:

当用户再次登录时,我们希望检查数据库,以查看用户以前是否申请过更改(基于其ID)

如果用户以前应用过,则将用户重定向到edits.aspx页面以更改其记录

换句话说,如果这是用户第一次申请,一旦用户成功通过身份验证,用户将看到他/她的福利页面,然后是他的/她的说明页面,最后是apply.aspx页面

如果用户已经应用,一旦通过身份验证,将用户重定向到福利页、说明页,最后重定向到edits.aspx页

无论我如何尝试,重定向都会将用户带到edits.aspx页面

有什么想法吗


抱歉,解释太长。

您需要跟踪用户是否已经访问过该页面,可能是存储其ID的
UserActivity
表。如果该用户存在该ID,只需将其重定向到相应页面即可。该代码对SQL注入攻击是完全开放的()。应该强烈考虑使用参数化SQL。对,您是正确的。第一个sql选择是。“这不是最后一件作品。”达伦达维斯,我以前做过好几次——成功地。我想这次让我不舒服的是,用户在进入编辑页面之前必须导航另外两个页面。您需要跟踪用户是否已经访问了该页面,可能是存储其ID的
UserActivity
表。如果该用户存在该ID,只需将它们重定向到适当的页面即可。该代码对SQL注入攻击()非常开放。应该强烈考虑使用参数化SQL。对,您是正确的。第一个sql选择是。“这不是最后一件作品。”达伦达维斯,我以前做过好几次——成功地。我想这一次让我不舒服的是,用户在进入编辑页面之前必须导航另外两个页面。