以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  客户端连接WEB数据源是一次性校验用户名和密码的吗?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=143031)

--  作者:pc005637
--  发布时间:2019/11/12 11:28:00
--  客户端连接WEB数据源是一次性校验用户名和密码的吗?
4、假定服务端建立的本地数据源的名称为"Orders",现在将HttpRequest事件代码设置为:

Dim Verified As Boolean
If e.PostValues.ContainsKey("username") AndAlso e.PostValues.ContainsKey("password") Then
    \'实际开发的时候,请改为根据用户表验证身份
    Dim username As String  = e.PostValues("username")
    Dim password As String  = e.PostValues("password")
    If username = "张三" AndAlso password = "888" Then
        Verified  = True
    End If
End If
If Verified = False Then
    e.AppendCookie("Error","用户身份验证失败!") \'通过Cookie返回错误信息.
    Return
End If
Select Case e.Path
    Case "DataServer.htm"
        e.AsDataServer("Orders")  \'将一个本地数据源公开为Web数据源
End Select

这个服务端的验证代码,是每次请求数据都会执行,还是首次连接才执行的?如果每次请求数据都执行,因为用户名和密码都是通过 SQL 在数据库中校验的,会不会对效率有影响?

--  作者:pc005637
--  发布时间:2019/11/12 11:29:00
--  有什么优化的空间?
有什么优化的空间?利用 cookie ?
--  作者:狐狸爸爸
--  发布时间:2019/11/12 11:40:00
--  
这个验证耗时,和网络传输数据的耗时相比,可以忽略不计。

如果要优化,可以将用户信息加载到DataTable,不用每次都访问数据库。