我需要在登录后从数据库的表注册中检索一些数据到show.aspx页面。当我在注册后注册一个新用户并将其重定向到profile.aspx页面时,它工作正常(显示所有必需的数据)。但如果我注销并再次登录同一用户,那么页面show.aspx什么都不显示
我正在使用此代码进行用户登录:
Protected Sub btnLogin_Click1(ByVal sender As Object, ByVal e As System.EventArgs)
Dim admin As String = "Admin"
Dim objcmd As New SqlCommand(("select * from Login where UserName='" + txtUserName1.Text & "' And Password='") + txtPassword1.Text & "'", con)
Dim objReader As SqlDataReader
con.Open()
objReader = objcmd.ExecuteReader()
If objReader.HasRows Then
While objReader.Read()
If [String].Compare(objReader("UserType").ToString(), admin) = 0 Then
Session("UserName_Admin") = txtUserName.Text.ToString().Trim()
Session("UserName") = txtUserName.Text.ToString().Trim()
Response.Redirect("adminview.aspx")
Else
Session("UserName") = txtUserName.Text.ToString().Trim()
Response.Redirect("show.aspx")
End If
End While
Else
lblLoginMessage.Text = "Login failed. Please try again"
End If
con.Close()
End Sub
show.aspx页面中的代码
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
If Session("UserName") Is Nothing Then
Response.Redirect("registration.aspx")
End If
binddata()
End Sub
Sub binddata()
Dim mycommand As New SqlCommand("SELECT * FROM registration where UserName = @UserName", con)
mycommand.Parameters.AddWithValue("@UserName", Session("UserName").ToString())
con.Open()
ProfileData.DataSource = mycommand.ExecuteReader
ProfileData.DataBind()
con.Close()
End Sub
Protected Sub LinkButton1_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Response.Redirect("upimg.aspx")
End Sub
我正在使用datalist从show.aspx页面中的数据库中检索数据。 有什么我需要在web.config文件中更改。将不胜感激帮助
答案 0 :(得分:1)
您的退出代码是否清除了会话值?
我认为使用ASP.net Membership和Roles处理此功能会更好,因为它会更加安全和灵活。
答案 1 :(得分:0)
我完全赞同@John Mc,使用会员提供商会更好。
关于清除会话信息,您应该使用:
Session.Clear()
Session.Abandon()