我有以下代码验证从SQL Server检索到的用户ID和密码,但是我希望密码的验证区分大小写。
Dim frm As New MarksEntryFrm
Dim flag As Boolean
flag = False
cmd = New SqlCommand("Select a.Form,a.AcademicYear,b.SubjectID,b.UserID,b.Password,c.Term from StudentDetails.Programmes a, StudentDetails.Subjects b,RegistrationDetails.Registration c where b.SubjectID='" & cboSubjCode.SelectedItem & "' and b.UserID='" & txtUserName.Text & "' and b.Password='" & txtPassword.Text & "'", cn)
dr1 = cmd.ExecuteReader
ctr = ctr + 1
If dr1.Read Then
frm.Show()
ctr = 0
Me.Hide()
ElseIf ctr < 3 Then
MessageBox.Show("Incorrect Subject Code,User Name or Password. Please try again.", "Wrong data entered", MessageBoxButtons.OK, MessageBoxIcon.Asterisk)
Else
MsgBox("Unathorized access. Aborting...")
Close()
End If
dr1.Close()
Run Code Online (Sandbox Code Playgroud)
为什么不对密码进行哈希处理????现在多数民众赞成...原始
井Case-sensitivity由表设计器中Collation property的列控制SQL Server。
默认值不区分大小写。
这里有两种解决方案供您尝试:
在SQL Server表设计器中,在“列属性”窗口中修改“密码”字段的“排序规则”属性,选中“ Case Sensitive”复选框。
首先,将密码从数据库检索到一个变量中,然后将其与进行比较TextBoxPassword.Text。
您可以在此处看到一个示例:http : //social.msdn.microsoft.com/forums/en-US/Vsexpressvb/thread/2d805aaa-d7d8-4183-8a12-cb578df5d8d8
希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
7079 次 |
| 最近记录: |