如何使密码区分大小写

Aka*_*glo 0 vb.net sql-server

我有以下代码验证从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)

Alp*_*ale 5

为什么不对密码进行哈希处理????现在多数民众赞成...原始

Case-sensitivity由表设计器中Collation property的列控制SQL Server

默认值不区分大小写。

这里有两种解决方案供您尝试:

  1. 在SQL Server表设计器中,在“列属性”窗口中修改“密码”字段的“排序规则”属性,选中“ Case Sensitive”复选框。

  2. 首先,将密码从数据库检索到一个变量中,然后将其与进行比较TextBoxPassword.Text

您可以在此处看到一个示例:http : //social.msdn.microsoft.com/forums/en-US/Vsexpressvb/thread/2d805aaa-d7d8-4183-8a12-cb578df5d8d8

希望这可以帮助。