我有一个登录表单,用于在VB中处理一些数据库查询。但是,如果在另一台PC上使用包含“@”等符号的用户名进行测试,则会在没有错误的情况下进行测试。
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Login.Click
Dim passStr As String = Password.Text
Dim userStr As String = Username.Text
...
我认为这是由于无效字符破坏了查询,但我不确定如何接受登录详细信息,将其全部转出。
我找到了一种从字符串中删除它们的方法,但是当我需要登录详细信息有效时,这不是很有帮助!
答案 0 :(得分:0)
最好以加密格式保存密码。我将建议您使用加密机制以加密格式存储密码。以下是功能:
Imports System.Text.UnicodeEncoding
Dim uni As New UnicodeEncoding()
Public Function encodeUTF(ByVal inputString As String) As String '<-- function for encoding the input string
Dim byt() As Byte = uni.GetBytes(inputString)
encodeUTF = ""
For Each b As Byte In byt
encodeUTF &= b & ","
Next
Trim(Replace(encodeUTF, ",", ""))
End Function
因此您的编码变为:
Dim passStr As String = encodeUTF(Password.Text)
Dim userStr As String = encodeUTF(Username.Text)