mysql - SQL 应用程序用户名和密码检查

标签 mysql vb.net

我正在开发一个应用程序,打算使用存储在 MS SQL Server 上的用户名和密码进行保护。我已经尝试了很多天让 Visual Basics 将两个文本框中输入的文本与 SQL 数据库上的用户名和密码进行比较,但我无法找到一种方法来做到这一点。与数据库的连接已经建立,我可以从我的应用程序操作服务器上的数据,但我只是无法找出“比较”凭据的代码。

我正在连接的数据库名为 Members_Details该表名为 Logins 。登录表仅包含两列 Name & Passkey (用户名和密码。)

到目前为止我尝试过的是:

  SQL = "Select * from logins " & _
          "where Name like '%" & Me.Usernametxt.Text.Trim & "%' AND Passkey LIKE Me.Passwordtxt.Text.Trim & "%'"

但我不知道之后该去哪里:/

如有任何帮助,我们将不胜感激,但目前安全性不是问题。

最佳答案

该问题是由 SQL 文本中嵌入的 Passwordtxt 文本框值引起的。

SQL = "Select * from logins " & _
      "where Name like '%" & Me.Usernametxt.Text.Trim & _
      "%' AND Passkey LIKE '" & Me.Passwordtxt.Text.Trim  & "'"

但是,如果您不需要安全方面的建议,请向前迈出一步并编写

SQL = "Select * from logins " & _
      "where Name like @uname " & _
      "AND Passkey = @pass"

Dim sqlCommand = new SqlCommand(SQL, con)
sqlCommand.Parameters.AddWithValue("@uname", "%" & Me.Usernametxt.Text.Trim & "%")
sqlCommand.Parameters.AddWithValue("@pass", Me.Passwordtxt.Text.Trim )
Using reader = cmd.ExecuteReader()
  if reader.HasRows Then
     ' user authenticated

此外,通常需要准确输入密码(区分大小写),因此不能使用 LIKE 运算符和通配符检索密码。
通配符对于用户名来说也有点奇怪,而使用 LIKE 运算符允许用户名不区分大小写是可以接受的

关于mysql - SQL 应用程序用户名和密码检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21194389/

相关文章:

VB.NET:按另一个列表对列表进行排序

vb.net - 您可以使用 Visual Studio 创建 .exe

php - MySQL : should i put my data into 1 table or split per user?

mysql - mysql中的select语句

php - 如何获取行数据的最大值(id)MySql

asp.net - 我应该如何在 Visual Studio 2015 中部署 Asp.Net 项目?

vb.net - 为字体分配多个属性

MySQL 事务 FOR COMMITING ON TRUE IF

php - 检查帐户是否存在

vb.net - 在多个字段、SUM 和 COUNT 上使用 GROUP BY 进行 Linq 查询