VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)
首页 - 经验之谈 - VB5.0中实现系统登录
发表评论(0)作者:肖利华, 平台:VB6.0+Win98, 阅读:9974, 日期:2001-03-30
VB5.0中实现系统登录
东华大学旭日信息管理研究所
肖利华
---- 一般进入系统都要登录(如进入Windows NT),进行身份检验,以保证软件的合法使用和维护,便于明确责任。我们自己开发的系统也必须保证系统使用者是合法用户,登录时要进行身份验证。

---- 系统登录时一般有三次机会,超过则视为非法用户,不让使用系统。本程序是用VB5.0实现的,后台数据库是Access 97。

其主要源程序代码如下:
Private Sub cmd_yes_Click()
注释:开始检验
Picture1.Picture = LoadPicture("trffc10b.ico")
    times = times + 1
    注释:解密
txt_mm.Text = invert(txt_mm.Text)
注释:查找用户名
ordc_dlmmk.Recordset.FindFirst
"username=注释:" & txt_bh.Text & "注释:"
If ordc_dlmmk.Recordset.NoMatch Then
If times < 3 Then
Picture1.Picture = LoadPicture("trffc10c.ico")
MsgBox "无此用户,请重新输入!",
vbExclamation + vbOKOnly,"提示信息"
Picture1.Picture = LoadPicture("trffc09.ico")
txt_bh.SetFocus
Call txt_bh_GotFocus
Exit Sub
Else
MsgBox "对不起,您无权使用本系统
," + vbCrLf + vbCrLf + "  请与系统管理员联系! ",
vbCritical + vbOKOnly, "提示信息"
End
       End If
    End If
    If times < 3 Then
        If Not (UCase(txt_mm.Text)
= UCase(Text2.Text)) Then
txt_mm.Text = invert(txt_mm.Text)
Picture1.Picture = LoadPicture("trffc10c.ico")
MsgBox "用户密码错误,请重新输入!",
vbExclamation, "提示信息"
Picture1.Picture = LoadPicture("trffc09.ico")
txt_mm.SetFocus
Call txt_mm_GotFocus
Exit Sub
        Else
Picture1.Picture = LoadPicture("trffc10a.ico")
MsgBox "欢迎您使用本系统!", vbInformation, "提示信息"
Unload Me
frm_welcome.Show
        End If
    ElseIf times = 3 Then
        If UCase(txt_mm.Text) = UCase(Text2.Text) Then
Picture1.Picture = LoadPicture("trffc10a.ico")
MsgBox "欢迎您使用本系统!", vbInformation, "提示信息"
Unload Me
frm_welcome.Show
Exit Sub
        End If
MsgBox "对不起,您无权使用本系统,
" + vbCrLf + vbCrLf + "  请与系统管理员联系! ",
vbCritical + vbOKOnly, "提示信息"
        End
    End If
End Sub

---- 由于一般系统用户有多个,所以必须设置多用户。通常用户名和对应密码以数据库的形式保存。但数据库极易暴露,可直接通过打开数据库而获取用户名和密码,安全性不好,所以应进行加密工作--保存在数据库中的密码与登录时输入的密码不一样,保存时进行加密,登录时进行解密。这样,即使看到了数据库内容,如果不知道解密过程也无法进入系统。

---- 一个比较简单的加密过程如下:

Public Function invert(passw As String)
Dim i As Integer
Dim Temp As String
    Temp = ""
    For i = Len(passw) To 1 Step -1
        Temp = Temp + Mid(passw, i, 1)
    Next i
    invert = Temp
End Function

---- 至此一个简单的系统登录过程就实现了。