【问题标题】:get real string from client to server vb.net从客户端获取真正的字符串到服务器 vb.net
【发布时间】:2013-11-28 09:00:57
【问题描述】:
listener = New TcpListener(System.Net.IPAddress.Any, portconnect)
    listener.Start()
    client = listener.AcceptTcpClient
    loginInfo = receivedata()
    Dim array() As String
    array = loginInfo.Split("|")
    username = array(0)
    pass = array(1)

客户端发送到服务器的信息是登录信息。我将 logininfo 输入用户名和密码。

Public Function authentication(ByVal user As String, ByVal pass As String) As Boolean
        Dim authentica As Boolean = False
        Dim con As New OleDbConnection
    Try
        con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & "  data source= " & Application.StartupPath & "\" & dataName

        Dim myCommand As OleDbCommand = con.CreateCommand()
        Dim sqlstr As String = ""
        sqlstr = "Select password from tbusers where Username = " & "'" & user & "'"
        myCommand.CommandText = sqlstr
        con.Open()
        Dim passw As String
        passw = myCommand.ExecuteScalar()
        con.Close()
        If pass = passw Then
            authentica = True
        End If

    Catch ex As Exception
        MsgBox(ex.ToString)
    End Try
    Return authentica
End Function

问题是:If pass = passw Then authentica = True End If 总是返回 false。 请帮忙

【问题讨论】:

  • 不,我认为,当客户端发送数据时,数据是被封装的。调试,用户是用户名和newstr =“用户名”。 boolean user = newstr ,它返回 false
  • 请显示您已经有哪些代码不起作用

标签: .net vb.net string parsing client-server


【解决方案1】:

如果管道字符'|'总是将用户名和密码分开,分开:

Dim str As String = "username|password"
Dim splitString() As String = str.Split("|")
Dim userName As String = splitString(0)
Dim password As String = splitString(1)

正如您所提到的,如果用户名的长度不同(很可能会!),您将需要一些常量作为拆分的基础。

但是你最好还是分开用户名和密码,这样它们就可以独立访问了。

【讨论】:

  • 这不是我的问题,兄弟。
  • 什么不是你的问题?如果我提供的内容不适合,请更新您的问题并提供一些代码以显示已建议的内容不起作用。
  • 当您检查 pass = passw 时,您是否看到调试器中的值是否相同?可能是白色或区分大小写的问题
  • 调试时传递和传递相同的值。
【解决方案2】:

您可以使用Split function

Dim str as String = "username|password"

Debug.writeline("Username is " + str.Split("|"c)(0))
Debug.writeline("Password is " + str.Split("|"c)(1))

以这种方式发送这些似乎是个坏主意。例如:如果密码中包含竖线字符会怎样?

【讨论】:

  • 那么,密码中通常不允许使用特殊字符吗?
  • 问题是登录信息服务器接收正确。我得到了用户名并通过了正确的。但是当我检查长度通过时,它的值为 8185.?????????????我不明白为什么
猜你喜欢
  • 2018-12-30
  • 2017-06-22
  • 1970-01-01
  • 1970-01-01
  • 2021-05-06
  • 2021-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多