-
vb教程之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
---- 至此一个简单的系统登录过程就实现了。
---- 系统登录时一般有三次机会,超过则视为非法用户,不让使用系统。本程序是用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
---- 至此一个简单的系统登录过程就实现了。
最新更新
python爬虫及其可视化
使用python爬取豆瓣电影短评评论内容
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
uniapp/H5 获取手机桌面壁纸 (静态壁纸)
[前端] DNS解析与优化
为什么在js中需要添加addEventListener()?
JS模块化系统
js通过Object.defineProperty() 定义和控制对象
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比