我尝试使用asp.net 3.5和sql server 2005进行登录我创建了一个数据集并执行此代码 但是这里的代码中缺少一些代码
Protected Sub btnlogin_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnlogin.Click
Dim LoginTable As New ClassSet.UsersDataTable
Dim LoginAdapter As New ClassSetTableAdapters.UsersTableAdapter
LoginAdapter.FillBylogin(LoginTable, txtuser.Text, txtpass.Text)
Dim dr As DataRow() = LoginTable.Select("Name= ' " & txtuser.Text & " 'Password= ' " & txtpass.Text & " '")
If dr.Length > 0 Then
Response.Redirect("MyClassifieds.aspx")
Else
Label1.Text = "Invalid UserName or Password"
End If
End Sub
它说在第5行的密码='“& txtpass.Text之后有些遗漏但我无法得到任何人可以帮助的错过
答案 0 :(得分:2)
您缺少名称和密码
之间的“AND”语句Dim dr As DataRow() = LoginTable.Select("Name= '" & txtuser.Text & "' AND Password= '" & txtpass.Text & "'")
答案 1 :(得分:2)
你错过了一个AND
Dim dr As DataRow()= LoginTable.Select(“Name ='”& txtuser.Text&“'AND Password ='”& txtpass.Text&“'”)
我怀疑你是否想要空格。
但是你也有问题,SQL注入。你真的不想像这样构建动态SQL,你必须 parameterise所有的查询。
答案 2 :(得分:-1)
为什么在通过数据适配器使用用户名和密码填充刚刚填写的登录表时运行select来验证用户名和密码?当然你可以检查它的长度。此外,如果您的登录系统中存在任何安全性,则密码将不会以纯文本格式存储,因此适配器填充方法应该采用某种方式进行散列以找到正确的密码以返回数据表。