其实很简单,就是设法跟踪一个数据就完了。
CS模式的(我现在参与的项目,不过我捉虫子的部分不是我开发,不是我有责任配合做调试)客户端登陆请求却报校验码错误,这种情况只出现在部分用户的机器。
学计算机的同志们想必都知道校验码这个东东,我也知道,嘻嘻,还记得一点,叫什么奇偶校验的,用未一bit来判断数据传输前后是否正确。我们这里的也有类似的功能吧。就是客户端发出登陆请求同时根据约定的加密算法生成安全ID,在服务端也用同样的算法算出安全ID,一校验看是否OK。其实到现在我还不太明这有什么用,它好像把用户ID和密码加密来确保数据在传输过程不会丢失(或被篡改)而造成数据丢失,这个在服务器还经过数据库验证的啊,要篡改直接提交过来好了。安全还是搞不太懂。
哎,扯太远了,说回来,之所以报校验码错误,必然是请求前后的安全ID出问题了。一开始大家都想不通,既然使用同一个约定的算法不可能报这个错。可能一来事情太多了,二来只有少部用户出现这种情况,都没动手跟踪数据,哈这回“老总”的机子重装了,login……“校验码错误”。呵呵压下来了。其实我今天还在研究他们的数据交换原理,还没想到怎么去跟踪数据,不过跟踪这些数据不必彻底理解。一开始我还想让他们客户端开发那边给我做一个跟踪的版本,NND老是说是我们服务器这边的问题不理不采。只有部分客户端报错,问题还会出现服务器端??TMD跟踪就跟踪,不就是一些脚本嘛。还好,折腾一阵子还是找到原始。报错的客户端提交到服务器的请求时间含有中文,导致前后算法结果不对。无言了,自己的东东还要别人帮他找错,还咄咄逼人的,很明显的也很容易找的错嘛。NND真的那么忙吗?谢谢NND的,让我动手我就学到东东,哈!
'===================================
'name:trackXMLtoDisk
'Description:记录登陆日志
'INPUT:LogContent,UserId
'OUTPUT:
'author:Kemin
'Date:2005-4-28
'=======================================
sub trackXMLtoDisk(LogContent, UserId)
dim FSO,LogFile,LogFolder
dim LogFolderPath
'登陆日志文件夹
LogFolderRootPath = "D:/XXXX/ChatRoomLoginLog/"
set FSO = server.CreateObject("scripting.filesystemobject")
'初始化日志文件夹,一天一个
LogFolderPath = LogFolderRootPath & CSTR(DATE) & "/"
if not FSO.FolderExists(LogFolderPath) then
set LogFolder = FSO.CreateFolder(LogFolderRootPath & CSTR(DATE))
LogFolderPath = LogFolder.path & "/"
end if
'创建日志文件,并写入登陆xml数据
set LogFile = FSO.CreateTextFile(LogFolderPath & UserId & CSTR(DATE)&".txt", True)
LogFile.WriteLine(LogContent)
LogFile.Close
end sub
之前也用过一次fso,一个简单图片上传的东东
'=========================
'==============First Step: Get All pic file name fill in a dictionary "dicFileName"
Dim oFSO
Dim oFolder
Dim oFiles
Dim dicFileName
Dim i
i = 1
Set oFSO = Server.CreateObject("Scripting.FileSystemObject")
Set oFolder = oFSO.GetFolder(Server.MapPath("pic"))
Set oFiles = oFolder.Files
Set dicFileName = Server.CreateObject("Scripting.Dictionary")
For Each oFile in oFiles
dicFileName.Add i, oFile.Name
i = i + 1
Next
'For i = 0 To dicFileName.Count
'Response.Write dicFileName.Item(i) & "<br>"
'Next
'=============Second : Get the custom pic Name from a txt file and fill into another
'=============dictionary for later use.
Dim oTextStream
Dim dicPicName
Set oTextStream = oFSO.OpenTextFile(Server.MapPath(".") & "/picName.txt")
Set dicPicName = Server.CreateObject("Scripting.Dictionary")
i = 1
While Not oTextStream.AtEndOfLine
dicPicName.Add i, oTextStream.ReadLine
i = i + 1
Wend