建立应用软件注册安全机制
2008-04-09 04:17:22来源:互联网 阅读 ()
Delphi作为一个优秀的编程工 具,功能极其强大,令开发周期大大缩短,生成的代码运行速度快,使得Windows 软件设计成为一种乐趣。基本思路是:建立Paradox格式的用户帐户表Users.DB,并加密保护,由管理员维护。预先在此表中登记并有注册权限的用户,可持本人有效口令登录进入系统。
实现步骤如下:
1.在应用软件主目录(假设为C:\Register)
下创建两个子目录,分别命名为Login和Data。
2.从Delphi的Tools菜单中启动Database
Desktop,并选择Tools/AliasManager…创建一个新别名。方法是:在Alias
Manager对话框中点New,给出新别名UserInfo,并指向C:\Register\Data
目录,按KeepNew、OK等按钮保存新别名。
3.利用DatabaseDesktop创建Paradox
5.0forWindows数据表Users.DB,结构见表1。事实上,对于商业软件还需要更多的域。
表1表Users.DB的结构
域名类型大小关键字说明
NameA16*用户名
PasswordA16*注册口令
FullnameA32用户全名
GroupI用户组号
EnabledL注册允许
4.设定Name,Group和Enabled
为非空域(RequiredField),Group的最小值为0,最大值为3,默认值为3,Enabled的默认值为True。用户组0为系统管理员,可进行几乎任何操作;用户组1为
软件操作人员,可进行除用户帐户管理以外的操作,包括建立和删除数据;用户组2为普通用户,可使用系统资源,无修改权限,而用户组3仅可浏览系
统有限信息。
5.用口令UserPassword
保护Users.DB表,存于Data目录下。利用DatabaseDesktop向表中输入若干样本用户(见表2),然后关闭DatabaseDesktop。
表2表Users.DB的样本用户
表2显示,允许同一用户以不同身 份(用户组)登录进入系统,享有不同的权限。如用户User1,以不同密码登
记,分属用户组1和2。
6.返回DelphiIDE,新建项目Register.dpr
并存入C:\Register目录,主窗体单元命名为Main.pas。用户注册成功后,方能启动主窗体进入系统。本系统仅显示用户信息及登录的日期和时间以
表示注册成功(见图5),并不做其它任何事情,这里便是读者应用系统的接口。为此,在主窗体上放入一个TGroupBox组件,TLabel和TEdit组件各五个。
将所有TEdit的Text属性清空,ReadOnly属性值设为True,窗体和组件其余属性按表3设置。
7.创建主窗体的OnActivate事
件处理程序,登录成功并激活主窗体时执行,显示用户信息、登录日期和时 间。过程如下:
procedureTMainForm.FormActivate(Sender:TObject);
begin
ifTime=StrToTime(12:00:00)then
Caption:=上午好,您已成功登录!
else
Caption:=下午好,您已成功登录!;
//显示登录用户信息、登录日期和时间
NameEdit.Text:=LoginUser.UserName;
FullNameEdit.Text:=LoginUser.UserFullName;
GroupEdit.Text:=IntToStr(LoginUser.UserGroup);
DisplayDateEdit.Text:=DateToStr(Date);
DisplayTimeEdit.Text:=TimeToStr(Time);
end;表3主窗体中组件属性设置
组件属性设置
Form1Caption
NameMainForm
PositionpoScreenCenter
GroupBox1Caption用户信息
Label1Caption用户名称:
Label2Caption用户全名:
Label3Caption用户组号:
Label4Caption登录日期:
Label5Caption登录时间:
Edit1NameNameEdit
Edit2NameFullnameEdit
Edit3NameGroupEdit
Edit4NameDisplayDateEdit
Edit5NameDisplayTimeEdit
8.数据模板。选择File/NewData Module建立数据模板LogDataModule,放入一个Ttable组件,如图1。属性 按表4设置,命名其单元为MD.pas,存入Login目录。
表4数据模板中组件属性设置
组件属性设置
Table1DatabaseNameUserInfo
NameUsersTable
TableNameUsers.DB
9.创建注册窗体。选择File/New Form创建一个新窗体,并加入组件TLabel、TEdit和TbitBtn各两个。窗体和组件属性按表5设置,命名其单元为Login.pas,存于Login目录。
表5注册窗体中组件属性设置
组件属性设置
Form2ActiveControlUserNameEdit
Caption请注册
NameLoginDialogForm
PositionpoScreenCenter
Label1Caption用户:
Label2Caption密码:
Edit1NameLoginNameEditText
Edit2NamePasswordEditPasswordChar*Text
BitBtn1Caption注册(&L)
EnabledFalse
KindbkOK
NameLoginBitBtn
BitBtn2Caption取消(&C)
EnabledTrue
KindbkCancel
NameCancelBitBtn
10.选择File/New命令,从NewItems 的New页中选择Unit项建一个无窗体单元Addition.pas存入Login目录,在其interface段输入下列语句:
usesClasses,Forms,Sysutils;
type
TApplicationUser=class(TComponent)
private
FUserName:string;标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash