----Delphi作为一个优秀的编程工具,功能极其强大, 令开发周期大大缩短,生成的代码运行速度快,使得Windows软件设计成为一种乐趣。基本 思路是:建立Paradox格式的用户帐户表Users.DB,并加密保护,由管理员维护。预先在此表 中登记并有注册权限的用户,可持本人有效口令登录进入系统。 ----实现步骤如下: ----1.在应用软件主目录(假设为C:\Register)下 创建两个子目录,分别命名为Login和Data。 ----2.从Delphi的Tools菜单中启动DatabaseDesktop, 并选择Tools/AliasManager…创建一个新别名。方法是:在AliasManager对话框中点New, 给出新别名UserInfo,并指向C:\Register\Data目录,按KeepNew、OK等按钮保存新别名。 ----3.利用DatabaseDesktop创建Paradox5.0for Windows数据表Users.DB,结构见表1。事实上,对于商业软件还需要更多的域。 表1表Users.DB的结构 域名 类型 大小 关键字 说明 Name A 16 * 用户名 Password A 16 * 注册口令 Fullname A 32 用户全名 Group I 用户组号 Enabled L 注册允许 ----4.设定Name,Group和Enabled为非空域(Required Field),Group的最小值为0,最大值为3,默认值为3,Enabled的默认值为True。用户组0为 系统管理员,可进行几乎任何操作;用户组1为软件操作人员,可进行除用户帐户管理以外 的操作,包括建立和删除数据;用户组2为普通用户,可使用系统资源,无修改权限,而用户 组3仅可浏览系统有限信息。 ----5.用口令"UserPassword"保护Users.DB表,存 于Data目录下。利用DatabaseDesktop向表中输入若干样本用户(见表2),然后关闭Database Desktop。 表2表Users.DB的样本用户 Name Password Fullname Group Enabled Supervisor AAAAAA SuperUser 0 True ector BBBBBB DirectorUser 1 True Guest 3 True User1 CCCCCC GeneralUser1 1 False User1 DDDDDD GeneralUser1 2 True User2 EEEEEE GeneralUser2 3 True ----表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主窗体中组件属性设置 组件 属性 设置 Form1 Caption Name MainForm Position poScreenCenter GroupBox1 Caption 用户信息 Label1 Caption 用户名称: Label2 Caption 用户全名: Label3 Caption 用户组号: Label4 Caption 登录日期: Label5 Caption 登录时间: Edit1 Name NameEdit Edit2 Name FullnameEdit Edit3 Name GroupEdit Edit4 Name DisplayDateEdit Edit5 Name DisplayTimeEdit ----8.数据模板。选择File/NewDataModule建立 数据模板LogDataModule,放入一个Ttable组件,如图1。属性按表4设置,命名其单元为MD.pas, 存入Login目录。 表4数据模板中组件属性设置 组件 属性 设置 Table1 DatabaseName UserInfo Name UsersTable TableName Users.DB ----9.创建注册窗体。选择File/NewForm创建一个 新窗体,并加入组件TLabel、TEdit和TbitBtn各两个。窗体和组件属性按表5设置,命名其单 元为Login.pas,存于Login目录。 表5注册窗体中组件属性设置 组件 属性 设置 Form2 ActiveControl UserNameEdit Caption 请注册 Name LoginDialogForm Position poScreenCenter Label1 Caption 用户: Label2 Caption 密码: Edit1 Name LoginNameEdit Text Edit2 Name PasswordEdit PasswordChar * Text BitBtn1 Caption 注册(&L) Enabled False Kind bkOK Name LoginBitBtn BitBtn2 Caption 取消(&C) Enabled True Kind bkCancel Name CancelBitBtn ----10.选择File/New命令,从NewItems的New页中 选择Unit项建一个无窗体单元Addition.pas存入Login目录,在其interface段输入下列语 句: usesClasses,Forms,Sysutils; type TApplicationUser=class(TComponent) private FUserName:string; FFullName:string; FUserGroup:Integer; public propertyUserName:stringread FUserNamewriteFUserName; propertyUserFullName:stringread FFullNamewriteFFullName; propertyUserGroup:Integerread FUserGroupwriteFUserGroup; end; var LoginUser:TApplicationUser; ----在implementation段加入下列语句: initialization LoginUser:=TapplicationUser.Create(Application); ----11.创建注册窗体(LoginDialogForm)的OnCreate 事件处理程序。在private段中声明CountDown为Integer变量,作为计数器,并将下述语句 插入begin与end之间: CountDown:=3;//允许尝试注册3次 ----12.建立用户名输入框(LoginNameEdit)的OnChange 事件处理程序,使窗体LoginDialogForm创建时注册按钮为灰色,用户输入登录名后才可用。 不难实现,源代码略。 ----13.创建注册过程。双击注册按钮(LoginBitBtn), 在begin和end之间输入其OnClick事件处理程序代码: ModalResult:=mrNone; try Session.AddPassword(UserPassword); LogDataModule.UsersTable.Open; //注册信息处理 ifnotLogDataModule.UsersTable.FindKey ([LoginNameEdit.Text,PasswordEdit.Text])then begin //处理注册次数 dec(CountDown); ifCountDown<=0thenModalResult:=mrCancelelse begin MessageBeep($FFFF); Application.MessageBox(请您重试一次!, 无效注册信息,mb_iconstop+mb_OK); //重设输入焦点 LoginNameEdit.SetFocus; end; exit; end; //检查注册允许值 ifnotLogDataModule.UsersTable.FieldByName (Enabled).AsBooleanthen begin MessageBeep($FFFF); Application.MessageBox(抱歉,您不能进入系统!, 使用权限终止,mb_iconexclamation+mb_OK); ModalResult:=mrCancel; exit; end; //获取注册用户信息 withLogDataModuledo begin LoginUser.UserName:=UsersTable. FieldByName(Name).AsString; LoginUser.UserFullName:=UsersTable. FieldByName(Fullname).AsString; LoginUser.UserGroup:=UsersTable. FieldByName(Group).AsInteger; End; ModalResult:=mrOK; //关闭表,清除密码 finally LogDataModule.UsersTable.Close; Session.RemovePassword(UserPassword); end; ----14.在Main.pas单元的uses中加入"Addition", 在Login.pas单元的implementation段增加uses语句: uses MD,Addition; ----15.打开过程文件Register.dpr,在uses语句中 加入"Controls",将"Application.run;"改为下列语句,只有注册成功时才启动系统,同 时释放注册窗体,以确保安全和减少内存占用。 ifLoginDialogForm.ShowModal=mrOKthen begin LoginDialogForm.Free; Application.Run; end; ----16.编译、运行。注册窗口见图2,输入用户名和 密码后点"注册"按钮。 ----如果注册信息有误,系统出现提示框,允许重新注 册,见图3。若三次尝试均不成功,注册窗口将保护性关闭。 ----访问权已被管理员终止的用户(Enabled的值为False), 例如用户User1以口令CCCCCC注册至用户组1,系统拒绝进入,见图4。 ----注册成功后将启动系统主程序。例如用户Supervisor 以口令AAAAAA注册,见图5。 ----上述方案具有以下特点: ----1.Supervisor用户具有至高无上的权利,由系 统创建,不能删除,仅Password和Fullname字段的值允许自行修改。主要负责系统维护和用 户帐户管理等工作,是系统的永久性特权用户。 ----2.确保用户帐户表Users.DB的安全致关重要, 本方案采用了较为可靠的关键性技术,就是注册过程(见步骤13)中"try…finally…end" 结构的应用。仅当用户按下"注册"按钮时,注册模块转送表Users.DB的密码并将其打开,以 处理注册信息。而无论成功与否,在finally部分都能及时关闭表Users.DB,并立即清除内 存中的密码。 ----3.用户帐户管理模块设在主程序中,完成表Users.DB 的维护功能,包括建立用户帐户和用户组,增、删用户,分配访问权限等。只有Supervisor或 其授权用户才可进入。 ----4.组帐户管理:用户按不同级别分组,再按组进 行权限分配,以简化管理。如系统可根据登录用户所属的用户组,十分方便地屏蔽相应菜单 项,以达到限制用户使用权限的目的。对用户群大的系统,此项技术的优越性尤为显著。 ----5.默认帐户限制:建立用户帐户时,系统默认其Group=3, 仅具备浏览有限信息之权限,不致因管理员一时疏忽使新建用户越权使用,危及系统安全。 ----6.单独帐户限制:用户注册时,必须提供完整的 个人有效信息才能进入系统。 ----7.注册允许限制:管理员可随时取消或恢复单 个用户、用户组甚至系统所有用户(Supervisor除外)的注册权限,只需设置注册允许字段Enabled 的值为False或True。 ----8.非法入侵限制:三次注册尝试不成功便保护 性关闭注册窗口,以防非法非法入侵者无限制尝试。 ----本文介绍了应用软件注册安全性问题的综合解决 方案,容易实现,便于扩充--如增加注册时间限制和记帐收费功能等,可建立较完善的注册 安全机制,适合大型商用软件开发。 155 [电脑技术]使用?和*两个通配符迅速批量(搜索)查找文件 [聊天工具]快速又高效 用Email免费发送网络传真__天极Yesky[常用软件]网管工具 用OH协助服务器进行安全监控 [常用软件]留住精彩 用“数码故事”制作DVD光碟[常用软件]小块头有大智慧 用Nero轻松设计个性化光盘 [常用软件]技高一筹 用Winamp播放影碟[VB.NET程序]用 VB 实现表单的自动提交 [VB.NET程序]用 VB 打开任意盘(硬盘/U盘/光盘)的文件.[VB.NET程序]用 VB 创建MS OFFICE的 COM 加载项 [VB.NET程序]如 何 用 API 播 放 CD
----实现步骤如下: ----1.在应用软件主目录(假设为C:\Register)下 创建两个子目录,分别命名为Login和Data。 ----2.从Delphi的Tools菜单中启动DatabaseDesktop, 并选择Tools/AliasManager…创建一个新别名。方法是:在AliasManager对话框中点New, 给出新别名UserInfo,并指向C:\Register\Data目录,按KeepNew、OK等按钮保存新别名。 ----3.利用DatabaseDesktop创建Paradox5.0for Windows数据表Users.DB,结构见表1。事实上,对于商业软件还需要更多的域。 表1表Users.DB的结构 域名 类型 大小 关键字 说明 Name A 16 * 用户名 Password A 16 * 注册口令 Fullname A 32 用户全名 Group I 用户组号 Enabled L 注册允许 ----4.设定Name,Group和Enabled为非空域(Required Field),Group的最小值为0,最大值为3,默认值为3,Enabled的默认值为True。用户组0为 系统管理员,可进行几乎任何操作;用户组1为软件操作人员,可进行除用户帐户管理以外 的操作,包括建立和删除数据;用户组2为普通用户,可使用系统资源,无修改权限,而用户 组3仅可浏览系统有限信息。 ----5.用口令"UserPassword"保护Users.DB表,存 于Data目录下。利用DatabaseDesktop向表中输入若干样本用户(见表2),然后关闭Database Desktop。 表2表Users.DB的样本用户 Name Password Fullname Group Enabled Supervisor AAAAAA SuperUser 0 True ector BBBBBB DirectorUser 1 True Guest 3 True User1 CCCCCC GeneralUser1 1 False User1 DDDDDD GeneralUser1 2 True User2 EEEEEE GeneralUser2 3 True ----表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主窗体中组件属性设置 组件 属性 设置 Form1 Caption Name MainForm Position poScreenCenter GroupBox1 Caption 用户信息 Label1 Caption 用户名称: Label2 Caption 用户全名: Label3 Caption 用户组号: Label4 Caption 登录日期: Label5 Caption 登录时间: Edit1 Name NameEdit Edit2 Name FullnameEdit Edit3 Name GroupEdit Edit4 Name DisplayDateEdit Edit5 Name DisplayTimeEdit ----8.数据模板。选择File/NewDataModule建立 数据模板LogDataModule,放入一个Ttable组件,如图1。属性按表4设置,命名其单元为MD.pas, 存入Login目录。 表4数据模板中组件属性设置 组件 属性 设置 Table1 DatabaseName UserInfo Name UsersTable TableName Users.DB ----9.创建注册窗体。选择File/NewForm创建一个 新窗体,并加入组件TLabel、TEdit和TbitBtn各两个。窗体和组件属性按表5设置,命名其单 元为Login.pas,存于Login目录。 表5注册窗体中组件属性设置 组件 属性 设置 Form2 ActiveControl UserNameEdit Caption 请注册 Name LoginDialogForm Position poScreenCenter Label1 Caption 用户: Label2 Caption 密码: Edit1 Name LoginNameEdit Text Edit2 Name PasswordEdit PasswordChar * Text BitBtn1 Caption 注册(&L) Enabled False Kind bkOK Name LoginBitBtn BitBtn2 Caption 取消(&C) Enabled True Kind bkCancel Name CancelBitBtn ----10.选择File/New命令,从NewItems的New页中 选择Unit项建一个无窗体单元Addition.pas存入Login目录,在其interface段输入下列语 句: usesClasses,Forms,Sysutils; type TApplicationUser=class(TComponent) private FUserName:string; FFullName:string; FUserGroup:Integer; public propertyUserName:stringread FUserNamewriteFUserName; propertyUserFullName:stringread FFullNamewriteFFullName; propertyUserGroup:Integerread FUserGroupwriteFUserGroup; end; var LoginUser:TApplicationUser; ----在implementation段加入下列语句: initialization LoginUser:=TapplicationUser.Create(Application); ----11.创建注册窗体(LoginDialogForm)的OnCreate 事件处理程序。在private段中声明CountDown为Integer变量,作为计数器,并将下述语句 插入begin与end之间: CountDown:=3;//允许尝试注册3次 ----12.建立用户名输入框(LoginNameEdit)的OnChange 事件处理程序,使窗体LoginDialogForm创建时注册按钮为灰色,用户输入登录名后才可用。 不难实现,源代码略。 ----13.创建注册过程。双击注册按钮(LoginBitBtn), 在begin和end之间输入其OnClick事件处理程序代码: ModalResult:=mrNone; try Session.AddPassword(UserPassword); LogDataModule.UsersTable.Open; //注册信息处理 ifnotLogDataModule.UsersTable.FindKey ([LoginNameEdit.Text,PasswordEdit.Text])then begin //处理注册次数 dec(CountDown); ifCountDown<=0thenModalResult:=mrCancelelse begin MessageBeep($FFFF); Application.MessageBox(请您重试一次!, 无效注册信息,mb_iconstop+mb_OK); //重设输入焦点 LoginNameEdit.SetFocus; end; exit; end; //检查注册允许值 ifnotLogDataModule.UsersTable.FieldByName (Enabled).AsBooleanthen begin MessageBeep($FFFF); Application.MessageBox(抱歉,您不能进入系统!, 使用权限终止,mb_iconexclamation+mb_OK); ModalResult:=mrCancel; exit; end; //获取注册用户信息 withLogDataModuledo begin LoginUser.UserName:=UsersTable. FieldByName(Name).AsString; LoginUser.UserFullName:=UsersTable. FieldByName(Fullname).AsString; LoginUser.UserGroup:=UsersTable. FieldByName(Group).AsInteger; End; ModalResult:=mrOK; //关闭表,清除密码 finally LogDataModule.UsersTable.Close; Session.RemovePassword(UserPassword); end; ----14.在Main.pas单元的uses中加入"Addition", 在Login.pas单元的implementation段增加uses语句: uses MD,Addition; ----15.打开过程文件Register.dpr,在uses语句中 加入"Controls",将"Application.run;"改为下列语句,只有注册成功时才启动系统,同 时释放注册窗体,以确保安全和减少内存占用。 ifLoginDialogForm.ShowModal=mrOKthen begin LoginDialogForm.Free; Application.Run; end; ----16.编译、运行。注册窗口见图2,输入用户名和 密码后点"注册"按钮。 ----如果注册信息有误,系统出现提示框,允许重新注 册,见图3。若三次尝试均不成功,注册窗口将保护性关闭。 ----访问权已被管理员终止的用户(Enabled的值为False), 例如用户User1以口令CCCCCC注册至用户组1,系统拒绝进入,见图4。 ----注册成功后将启动系统主程序。例如用户Supervisor 以口令AAAAAA注册,见图5。 ----上述方案具有以下特点: ----1.Supervisor用户具有至高无上的权利,由系 统创建,不能删除,仅Password和Fullname字段的值允许自行修改。主要负责系统维护和用 户帐户管理等工作,是系统的永久性特权用户。 ----2.确保用户帐户表Users.DB的安全致关重要, 本方案采用了较为可靠的关键性技术,就是注册过程(见步骤13)中"try…finally…end" 结构的应用。仅当用户按下"注册"按钮时,注册模块转送表Users.DB的密码并将其打开,以 处理注册信息。而无论成功与否,在finally部分都能及时关闭表Users.DB,并立即清除内 存中的密码。 ----3.用户帐户管理模块设在主程序中,完成表Users.DB 的维护功能,包括建立用户帐户和用户组,增、删用户,分配访问权限等。只有Supervisor或 其授权用户才可进入。 ----4.组帐户管理:用户按不同级别分组,再按组进 行权限分配,以简化管理。如系统可根据登录用户所属的用户组,十分方便地屏蔽相应菜单 项,以达到限制用户使用权限的目的。对用户群大的系统,此项技术的优越性尤为显著。 ----5.默认帐户限制:建立用户帐户时,系统默认其Group=3, 仅具备浏览有限信息之权限,不致因管理员一时疏忽使新建用户越权使用,危及系统安全。 ----6.单独帐户限制:用户注册时,必须提供完整的 个人有效信息才能进入系统。 ----7.注册允许限制:管理员可随时取消或恢复单 个用户、用户组甚至系统所有用户(Supervisor除外)的注册权限,只需设置注册允许字段Enabled 的值为False或True。 ----8.非法入侵限制:三次注册尝试不成功便保护 性关闭注册窗口,以防非法非法入侵者无限制尝试。 ----本文介绍了应用软件注册安全性问题的综合解决 方案,容易实现,便于扩充--如增加注册时间限制和记帐收费功能等,可建立较完善的注册 安全机制,适合大型商用软件开发。 155 [电脑技术]使用?和*两个通配符迅速批量(搜索)查找文件 [聊天工具]快速又高效 用Email免费发送网络传真__天极Yesky[常用软件]网管工具 用OH协助服务器进行安全监控 [常用软件]留住精彩 用“数码故事”制作DVD光碟[常用软件]小块头有大智慧 用Nero轻松设计个性化光盘 [常用软件]技高一筹 用Winamp播放影碟[VB.NET程序]用 VB 实现表单的自动提交 [VB.NET程序]用 VB 打开任意盘(硬盘/U盘/光盘)的文件.[VB.NET程序]用 VB 创建MS OFFICE的 COM 加载项 [VB.NET程序]如 何 用 API 播 放 CD
----1.在应用软件主目录(假设为C:\Register)下 创建两个子目录,分别命名为Login和Data。 ----2.从Delphi的Tools菜单中启动DatabaseDesktop, 并选择Tools/AliasManager…创建一个新别名。方法是:在AliasManager对话框中点New, 给出新别名UserInfo,并指向C:\Register\Data目录,按KeepNew、OK等按钮保存新别名。 ----3.利用DatabaseDesktop创建Paradox5.0for Windows数据表Users.DB,结构见表1。事实上,对于商业软件还需要更多的域。 表1表Users.DB的结构 域名 类型 大小 关键字 说明 Name A 16 * 用户名 Password A 16 * 注册口令 Fullname A 32 用户全名 Group I 用户组号 Enabled L 注册允许 ----4.设定Name,Group和Enabled为非空域(Required Field),Group的最小值为0,最大值为3,默认值为3,Enabled的默认值为True。用户组0为 系统管理员,可进行几乎任何操作;用户组1为软件操作人员,可进行除用户帐户管理以外 的操作,包括建立和删除数据;用户组2为普通用户,可使用系统资源,无修改权限,而用户 组3仅可浏览系统有限信息。 ----5.用口令"UserPassword"保护Users.DB表,存 于Data目录下。利用DatabaseDesktop向表中输入若干样本用户(见表2),然后关闭Database Desktop。 表2表Users.DB的样本用户 Name Password Fullname Group Enabled Supervisor AAAAAA SuperUser 0 True ector BBBBBB DirectorUser 1 True Guest 3 True User1 CCCCCC GeneralUser1 1 False User1 DDDDDD GeneralUser1 2 True User2 EEEEEE GeneralUser2 3 True ----表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主窗体中组件属性设置 组件 属性 设置 Form1 Caption Name MainForm Position poScreenCenter GroupBox1 Caption 用户信息 Label1 Caption 用户名称: Label2 Caption 用户全名: Label3 Caption 用户组号: Label4 Caption 登录日期: Label5 Caption 登录时间: Edit1 Name NameEdit Edit2 Name FullnameEdit Edit3 Name GroupEdit Edit4 Name DisplayDateEdit Edit5 Name DisplayTimeEdit ----8.数据模板。选择File/NewDataModule建立 数据模板LogDataModule,放入一个Ttable组件,如图1。属性按表4设置,命名其单元为MD.pas, 存入Login目录。 表4数据模板中组件属性设置 组件 属性 设置 Table1 DatabaseName UserInfo Name UsersTable TableName Users.DB ----9.创建注册窗体。选择File/NewForm创建一个 新窗体,并加入组件TLabel、TEdit和TbitBtn各两个。窗体和组件属性按表5设置,命名其单 元为Login.pas,存于Login目录。 表5注册窗体中组件属性设置 组件 属性 设置 Form2 ActiveControl UserNameEdit Caption 请注册 Name LoginDialogForm Position poScreenCenter Label1 Caption 用户: Label2 Caption 密码: Edit1 Name LoginNameEdit Text Edit2 Name PasswordEdit PasswordChar * Text BitBtn1 Caption 注册(&L) Enabled False Kind bkOK Name LoginBitBtn BitBtn2 Caption 取消(&C) Enabled True Kind bkCancel Name CancelBitBtn ----10.选择File/New命令,从NewItems的New页中 选择Unit项建一个无窗体单元Addition.pas存入Login目录,在其interface段输入下列语 句: usesClasses,Forms,Sysutils; type TApplicationUser=class(TComponent) private FUserName:string; FFullName:string; FUserGroup:Integer; public propertyUserName:stringread FUserNamewriteFUserName; propertyUserFullName:stringread FFullNamewriteFFullName; propertyUserGroup:Integerread FUserGroupwriteFUserGroup; end; var LoginUser:TApplicationUser; ----在implementation段加入下列语句: initialization LoginUser:=TapplicationUser.Create(Application); ----11.创建注册窗体(LoginDialogForm)的OnCreate 事件处理程序。在private段中声明CountDown为Integer变量,作为计数器,并将下述语句 插入begin与end之间: CountDown:=3;//允许尝试注册3次 ----12.建立用户名输入框(LoginNameEdit)的OnChange 事件处理程序,使窗体LoginDialogForm创建时注册按钮为灰色,用户输入登录名后才可用。 不难实现,源代码略。 ----13.创建注册过程。双击注册按钮(LoginBitBtn), 在begin和end之间输入其OnClick事件处理程序代码: ModalResult:=mrNone; try Session.AddPassword(UserPassword); LogDataModule.UsersTable.Open; //注册信息处理 ifnotLogDataModule.UsersTable.FindKey ([LoginNameEdit.Text,PasswordEdit.Text])then begin //处理注册次数 dec(CountDown); ifCountDown<=0thenModalResult:=mrCancelelse begin MessageBeep($FFFF); Application.MessageBox(请您重试一次!, 无效注册信息,mb_iconstop+mb_OK); //重设输入焦点 LoginNameEdit.SetFocus; end; exit; end; //检查注册允许值 ifnotLogDataModule.UsersTable.FieldByName (Enabled).AsBooleanthen begin MessageBeep($FFFF); Application.MessageBox(抱歉,您不能进入系统!, 使用权限终止,mb_iconexclamation+mb_OK); ModalResult:=mrCancel; exit; end; //获取注册用户信息 withLogDataModuledo begin LoginUser.UserName:=UsersTable. FieldByName(Name).AsString; LoginUser.UserFullName:=UsersTable. FieldByName(Fullname).AsString; LoginUser.UserGroup:=UsersTable. FieldByName(Group).AsInteger; End; ModalResult:=mrOK; //关闭表,清除密码 finally LogDataModule.UsersTable.Close; Session.RemovePassword(UserPassword); end; ----14.在Main.pas单元的uses中加入"Addition", 在Login.pas单元的implementation段增加uses语句: uses MD,Addition; ----15.打开过程文件Register.dpr,在uses语句中 加入"Controls",将"Application.run;"改为下列语句,只有注册成功时才启动系统,同 时释放注册窗体,以确保安全和减少内存占用。 ifLoginDialogForm.ShowModal=mrOKthen begin LoginDialogForm.Free; Application.Run; end; ----16.编译、运行。注册窗口见图2,输入用户名和 密码后点"注册"按钮。 ----如果注册信息有误,系统出现提示框,允许重新注 册,见图3。若三次尝试均不成功,注册窗口将保护性关闭。 ----访问权已被管理员终止的用户(Enabled的值为False), 例如用户User1以口令CCCCCC注册至用户组1,系统拒绝进入,见图4。 ----注册成功后将启动系统主程序。例如用户Supervisor 以口令AAAAAA注册,见图5。 ----上述方案具有以下特点: ----1.Supervisor用户具有至高无上的权利,由系 统创建,不能删除,仅Password和Fullname字段的值允许自行修改。主要负责系统维护和用 户帐户管理等工作,是系统的永久性特权用户。 ----2.确保用户帐户表Users.DB的安全致关重要, 本方案采用了较为可靠的关键性技术,就是注册过程(见步骤13)中"try…finally…end" 结构的应用。仅当用户按下"注册"按钮时,注册模块转送表Users.DB的密码并将其打开,以 处理注册信息。而无论成功与否,在finally部分都能及时关闭表Users.DB,并立即清除内 存中的密码。 ----3.用户帐户管理模块设在主程序中,完成表Users.DB 的维护功能,包括建立用户帐户和用户组,增、删用户,分配访问权限等。只有Supervisor或 其授权用户才可进入。 ----4.组帐户管理:用户按不同级别分组,再按组进 行权限分配,以简化管理。如系统可根据登录用户所属的用户组,十分方便地屏蔽相应菜单 项,以达到限制用户使用权限的目的。对用户群大的系统,此项技术的优越性尤为显著。 ----5.默认帐户限制:建立用户帐户时,系统默认其Group=3, 仅具备浏览有限信息之权限,不致因管理员一时疏忽使新建用户越权使用,危及系统安全。 ----6.单独帐户限制:用户注册时,必须提供完整的 个人有效信息才能进入系统。 ----7.注册允许限制:管理员可随时取消或恢复单 个用户、用户组甚至系统所有用户(Supervisor除外)的注册权限,只需设置注册允许字段Enabled 的值为False或True。 ----8.非法入侵限制:三次注册尝试不成功便保护 性关闭注册窗口,以防非法非法入侵者无限制尝试。 ----本文介绍了应用软件注册安全性问题的综合解决 方案,容易实现,便于扩充--如增加注册时间限制和记帐收费功能等,可建立较完善的注册 安全机制,适合大型商用软件开发。 155 [电脑技术]使用?和*两个通配符迅速批量(搜索)查找文件 [聊天工具]快速又高效 用Email免费发送网络传真__天极Yesky[常用软件]网管工具 用OH协助服务器进行安全监控 [常用软件]留住精彩 用“数码故事”制作DVD光碟[常用软件]小块头有大智慧 用Nero轻松设计个性化光盘 [常用软件]技高一筹 用Winamp播放影碟[VB.NET程序]用 VB 实现表单的自动提交 [VB.NET程序]用 VB 打开任意盘(硬盘/U盘/光盘)的文件.[VB.NET程序]用 VB 创建MS OFFICE的 COM 加载项 [VB.NET程序]如 何 用 API 播 放 CD
----2.从Delphi的Tools菜单中启动DatabaseDesktop, 并选择Tools/AliasManager…创建一个新别名。方法是:在AliasManager对话框中点New, 给出新别名UserInfo,并指向C:\Register\Data目录,按KeepNew、OK等按钮保存新别名。 ----3.利用DatabaseDesktop创建Paradox5.0for Windows数据表Users.DB,结构见表1。事实上,对于商业软件还需要更多的域。 表1表Users.DB的结构 域名 类型 大小 关键字 说明 Name A 16 * 用户名 Password A 16 * 注册口令 Fullname A 32 用户全名 Group I 用户组号 Enabled L 注册允许 ----4.设定Name,Group和Enabled为非空域(Required Field),Group的最小值为0,最大值为3,默认值为3,Enabled的默认值为True。用户组0为 系统管理员,可进行几乎任何操作;用户组1为软件操作人员,可进行除用户帐户管理以外 的操作,包括建立和删除数据;用户组2为普通用户,可使用系统资源,无修改权限,而用户 组3仅可浏览系统有限信息。 ----5.用口令"UserPassword"保护Users.DB表,存 于Data目录下。利用DatabaseDesktop向表中输入若干样本用户(见表2),然后关闭Database Desktop。 表2表Users.DB的样本用户 Name Password Fullname Group Enabled Supervisor AAAAAA SuperUser 0 True ector BBBBBB DirectorUser 1 True Guest 3 True User1 CCCCCC GeneralUser1 1 False User1 DDDDDD GeneralUser1 2 True User2 EEEEEE GeneralUser2 3 True ----表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主窗体中组件属性设置 组件 属性 设置 Form1 Caption Name MainForm Position poScreenCenter GroupBox1 Caption 用户信息 Label1 Caption 用户名称: Label2 Caption 用户全名: Label3 Caption 用户组号: Label4 Caption 登录日期: Label5 Caption 登录时间: Edit1 Name NameEdit Edit2 Name FullnameEdit Edit3 Name GroupEdit Edit4 Name DisplayDateEdit Edit5 Name DisplayTimeEdit ----8.数据模板。选择File/NewDataModule建立 数据模板LogDataModule,放入一个Ttable组件,如图1。属性按表4设置,命名其单元为MD.pas, 存入Login目录。 表4数据模板中组件属性设置 组件 属性 设置 Table1 DatabaseName UserInfo Name UsersTable TableName Users.DB ----9.创建注册窗体。选择File/NewForm创建一个 新窗体,并加入组件TLabel、TEdit和TbitBtn各两个。窗体和组件属性按表5设置,命名其单 元为Login.pas,存于Login目录。 表5注册窗体中组件属性设置 组件 属性 设置 Form2 ActiveControl UserNameEdit Caption 请注册 Name LoginDialogForm Position poScreenCenter Label1 Caption 用户: Label2 Caption 密码: Edit1 Name LoginNameEdit Text Edit2 Name PasswordEdit PasswordChar * Text BitBtn1 Caption 注册(&L) Enabled False Kind bkOK Name LoginBitBtn BitBtn2 Caption 取消(&C) Enabled True Kind bkCancel Name CancelBitBtn ----10.选择File/New命令,从NewItems的New页中 选择Unit项建一个无窗体单元Addition.pas存入Login目录,在其interface段输入下列语 句: usesClasses,Forms,Sysutils; type TApplicationUser=class(TComponent) private FUserName:string; FFullName:string; FUserGroup:Integer; public propertyUserName:stringread FUserNamewriteFUserName; propertyUserFullName:stringread FFullNamewriteFFullName; propertyUserGroup:Integerread FUserGroupwriteFUserGroup; end; var LoginUser:TApplicationUser; ----在implementation段加入下列语句: initialization LoginUser:=TapplicationUser.Create(Application); ----11.创建注册窗体(LoginDialogForm)的OnCreate 事件处理程序。在private段中声明CountDown为Integer变量,作为计数器,并将下述语句 插入begin与end之间: CountDown:=3;//允许尝试注册3次 ----12.建立用户名输入框(LoginNameEdit)的OnChange 事件处理程序,使窗体LoginDialogForm创建时注册按钮为灰色,用户输入登录名后才可用。 不难实现,源代码略。 ----13.创建注册过程。双击注册按钮(LoginBitBtn), 在begin和end之间输入其OnClick事件处理程序代码: ModalResult:=mrNone; try Session.AddPassword(UserPassword); LogDataModule.UsersTable.Open; //注册信息处理 ifnotLogDataModule.UsersTable.FindKey ([LoginNameEdit.Text,PasswordEdit.Text])then begin //处理注册次数 dec(CountDown); ifCountDown<=0thenModalResult:=mrCancelelse begin MessageBeep($FFFF); Application.MessageBox(请您重试一次!, 无效注册信息,mb_iconstop+mb_OK); //重设输入焦点 LoginNameEdit.SetFocus; end; exit; end; //检查注册允许值 ifnotLogDataModule.UsersTable.FieldByName (Enabled).AsBooleanthen begin MessageBeep($FFFF); Application.MessageBox(抱歉,您不能进入系统!, 使用权限终止,mb_iconexclamation+mb_OK); ModalResult:=mrCancel; exit; end; //获取注册用户信息 withLogDataModuledo begin LoginUser.UserName:=UsersTable. FieldByName(Name).AsString; LoginUser.UserFullName:=UsersTable. FieldByName(Fullname).AsString; LoginUser.UserGroup:=UsersTable. FieldByName(Group).AsInteger; End; ModalResult:=mrOK; //关闭表,清除密码 finally LogDataModule.UsersTable.Close; Session.RemovePassword(UserPassword); end; ----14.在Main.pas单元的uses中加入"Addition", 在Login.pas单元的implementation段增加uses语句: uses MD,Addition; ----15.打开过程文件Register.dpr,在uses语句中 加入"Controls",将"Application.run;"改为下列语句,只有注册成功时才启动系统,同 时释放注册窗体,以确保安全和减少内存占用。 ifLoginDialogForm.ShowModal=mrOKthen begin LoginDialogForm.Free; Application.Run; end; ----16.编译、运行。注册窗口见图2,输入用户名和 密码后点"注册"按钮。 ----如果注册信息有误,系统出现提示框,允许重新注 册,见图3。若三次尝试均不成功,注册窗口将保护性关闭。 ----访问权已被管理员终止的用户(Enabled的值为False), 例如用户User1以口令CCCCCC注册至用户组1,系统拒绝进入,见图4。 ----注册成功后将启动系统主程序。例如用户Supervisor 以口令AAAAAA注册,见图5。 ----上述方案具有以下特点: ----1.Supervisor用户具有至高无上的权利,由系 统创建,不能删除,仅Password和Fullname字段的值允许自行修改。主要负责系统维护和用 户帐户管理等工作,是系统的永久性特权用户。 ----2.确保用户帐户表Users.DB的安全致关重要, 本方案采用了较为可靠的关键性技术,就是注册过程(见步骤13)中"try…finally…end" 结构的应用。仅当用户按下"注册"按钮时,注册模块转送表Users.DB的密码并将其打开,以 处理注册信息。而无论成功与否,在finally部分都能及时关闭表Users.DB,并立即清除内 存中的密码。 ----3.用户帐户管理模块设在主程序中,完成表Users.DB 的维护功能,包括建立用户帐户和用户组,增、删用户,分配访问权限等。只有Supervisor或 其授权用户才可进入。 ----4.组帐户管理:用户按不同级别分组,再按组进 行权限分配,以简化管理。如系统可根据登录用户所属的用户组,十分方便地屏蔽相应菜单 项,以达到限制用户使用权限的目的。对用户群大的系统,此项技术的优越性尤为显著。 ----5.默认帐户限制:建立用户帐户时,系统默认其Group=3, 仅具备浏览有限信息之权限,不致因管理员一时疏忽使新建用户越权使用,危及系统安全。 ----6.单独帐户限制:用户注册时,必须提供完整的 个人有效信息才能进入系统。 ----7.注册允许限制:管理员可随时取消或恢复单 个用户、用户组甚至系统所有用户(Supervisor除外)的注册权限,只需设置注册允许字段Enabled 的值为False或True。 ----8.非法入侵限制:三次注册尝试不成功便保护 性关闭注册窗口,以防非法非法入侵者无限制尝试。 ----本文介绍了应用软件注册安全性问题的综合解决 方案,容易实现,便于扩充--如增加注册时间限制和记帐收费功能等,可建立较完善的注册 安全机制,适合大型商用软件开发。 155 [电脑技术]使用?和*两个通配符迅速批量(搜索)查找文件 [聊天工具]快速又高效 用Email免费发送网络传真__天极Yesky[常用软件]网管工具 用OH协助服务器进行安全监控 [常用软件]留住精彩 用“数码故事”制作DVD光碟[常用软件]小块头有大智慧 用Nero轻松设计个性化光盘 [常用软件]技高一筹 用Winamp播放影碟[VB.NET程序]用 VB 实现表单的自动提交 [VB.NET程序]用 VB 打开任意盘(硬盘/U盘/光盘)的文件.[VB.NET程序]用 VB 创建MS OFFICE的 COM 加载项 [VB.NET程序]如 何 用 API 播 放 CD
----3.利用DatabaseDesktop创建Paradox5.0for Windows数据表Users.DB,结构见表1。事实上,对于商业软件还需要更多的域。 表1表Users.DB的结构 域名 类型 大小 关键字 说明 Name A 16 * 用户名 Password A 16 * 注册口令 Fullname A 32 用户全名 Group I 用户组号 Enabled L 注册允许 ----4.设定Name,Group和Enabled为非空域(Required Field),Group的最小值为0,最大值为3,默认值为3,Enabled的默认值为True。用户组0为 系统管理员,可进行几乎任何操作;用户组1为软件操作人员,可进行除用户帐户管理以外 的操作,包括建立和删除数据;用户组2为普通用户,可使用系统资源,无修改权限,而用户 组3仅可浏览系统有限信息。 ----5.用口令"UserPassword"保护Users.DB表,存 于Data目录下。利用DatabaseDesktop向表中输入若干样本用户(见表2),然后关闭Database Desktop。 表2表Users.DB的样本用户 Name Password Fullname Group Enabled Supervisor AAAAAA SuperUser 0 True ector BBBBBB DirectorUser 1 True Guest 3 True User1 CCCCCC GeneralUser1 1 False User1 DDDDDD GeneralUser1 2 True User2 EEEEEE GeneralUser2 3 True ----表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主窗体中组件属性设置 组件 属性 设置 Form1 Caption Name MainForm Position poScreenCenter GroupBox1 Caption 用户信息 Label1 Caption 用户名称: Label2 Caption 用户全名: Label3 Caption 用户组号: Label4 Caption 登录日期: Label5 Caption 登录时间: Edit1 Name NameEdit Edit2 Name FullnameEdit Edit3 Name GroupEdit Edit4 Name DisplayDateEdit Edit5 Name DisplayTimeEdit ----8.数据模板。选择File/NewDataModule建立 数据模板LogDataModule,放入一个Ttable组件,如图1。属性按表4设置,命名其单元为MD.pas, 存入Login目录。 表4数据模板中组件属性设置 组件 属性 设置 Table1 DatabaseName UserInfo Name UsersTable TableName Users.DB ----9.创建注册窗体。选择File/NewForm创建一个 新窗体,并加入组件TLabel、TEdit和TbitBtn各两个。窗体和组件属性按表5设置,命名其单 元为Login.pas,存于Login目录。 表5注册窗体中组件属性设置 组件 属性 设置 Form2 ActiveControl UserNameEdit Caption 请注册 Name LoginDialogForm Position poScreenCenter Label1 Caption 用户: Label2 Caption 密码: Edit1 Name LoginNameEdit Text Edit2 Name PasswordEdit PasswordChar * Text BitBtn1 Caption 注册(&L) Enabled False Kind bkOK Name LoginBitBtn BitBtn2 Caption 取消(&C) Enabled True Kind bkCancel Name CancelBitBtn ----10.选择File/New命令,从NewItems的New页中 选择Unit项建一个无窗体单元Addition.pas存入Login目录,在其interface段输入下列语 句: usesClasses,Forms,Sysutils; type TApplicationUser=class(TComponent) private FUserName:string; FFullName:string; FUserGroup:Integer; public propertyUserName:stringread FUserNamewriteFUserName; propertyUserFullName:stringread FFullNamewriteFFullName; propertyUserGroup:Integerread FUserGroupwriteFUserGroup; end; var LoginUser:TApplicationUser; ----在implementation段加入下列语句: initialization LoginUser:=TapplicationUser.Create(Application); ----11.创建注册窗体(LoginDialogForm)的OnCreate 事件处理程序。在private段中声明CountDown为Integer变量,作为计数器,并将下述语句 插入begin与end之间: CountDown:=3;//允许尝试注册3次 ----12.建立用户名输入框(LoginNameEdit)的OnChange 事件处理程序,使窗体LoginDialogForm创建时注册按钮为灰色,用户输入登录名后才可用。 不难实现,源代码略。 ----13.创建注册过程。双击注册按钮(LoginBitBtn), 在begin和end之间输入其OnClick事件处理程序代码: ModalResult:=mrNone; try Session.AddPassword(UserPassword); LogDataModule.UsersTable.Open; //注册信息处理 ifnotLogDataModule.UsersTable.FindKey ([LoginNameEdit.Text,PasswordEdit.Text])then begin //处理注册次数 dec(CountDown); ifCountDown<=0thenModalResult:=mrCancelelse begin MessageBeep($FFFF); Application.MessageBox(请您重试一次!, 无效注册信息,mb_iconstop+mb_OK); //重设输入焦点 LoginNameEdit.SetFocus; end; exit; end; //检查注册允许值 ifnotLogDataModule.UsersTable.FieldByName (Enabled).AsBooleanthen begin MessageBeep($FFFF); Application.MessageBox(抱歉,您不能进入系统!, 使用权限终止,mb_iconexclamation+mb_OK); ModalResult:=mrCancel; exit; end; //获取注册用户信息 withLogDataModuledo begin LoginUser.UserName:=UsersTable. FieldByName(Name).AsString; LoginUser.UserFullName:=UsersTable. FieldByName(Fullname).AsString; LoginUser.UserGroup:=UsersTable. FieldByName(Group).AsInteger; End; ModalResult:=mrOK; //关闭表,清除密码 finally LogDataModule.UsersTable.Close; Session.RemovePassword(UserPassword); end; ----14.在Main.pas单元的uses中加入"Addition", 在Login.pas单元的implementation段增加uses语句: uses MD,Addition; ----15.打开过程文件Register.dpr,在uses语句中 加入"Controls",将"Application.run;"改为下列语句,只有注册成功时才启动系统,同 时释放注册窗体,以确保安全和减少内存占用。 ifLoginDialogForm.ShowModal=mrOKthen begin LoginDialogForm.Free; Application.Run; end; ----16.编译、运行。注册窗口见图2,输入用户名和 密码后点"注册"按钮。 ----如果注册信息有误,系统出现提示框,允许重新注 册,见图3。若三次尝试均不成功,注册窗口将保护性关闭。 ----访问权已被管理员终止的用户(Enabled的值为False), 例如用户User1以口令CCCCCC注册至用户组1,系统拒绝进入,见图4。 ----注册成功后将启动系统主程序。例如用户Supervisor 以口令AAAAAA注册,见图5。 ----上述方案具有以下特点: ----1.Supervisor用户具有至高无上的权利,由系 统创建,不能删除,仅Password和Fullname字段的值允许自行修改。主要负责系统维护和用 户帐户管理等工作,是系统的永久性特权用户。 ----2.确保用户帐户表Users.DB的安全致关重要, 本方案采用了较为可靠的关键性技术,就是注册过程(见步骤13)中"try…finally…end" 结构的应用。仅当用户按下"注册"按钮时,注册模块转送表Users.DB的密码并将其打开,以 处理注册信息。而无论成功与否,在finally部分都能及时关闭表Users.DB,并立即清除内 存中的密码。 ----3.用户帐户管理模块设在主程序中,完成表Users.DB 的维护功能,包括建立用户帐户和用户组,增、删用户,分配访问权限等。只有Supervisor或 其授权用户才可进入。 ----4.组帐户管理:用户按不同级别分组,再按组进 行权限分配,以简化管理。如系统可根据登录用户所属的用户组,十分方便地屏蔽相应菜单 项,以达到限制用户使用权限的目的。对用户群大的系统,此项技术的优越性尤为显著。 ----5.默认帐户限制:建立用户帐户时,系统默认其Group=3, 仅具备浏览有限信息之权限,不致因管理员一时疏忽使新建用户越权使用,危及系统安全。 ----6.单独帐户限制:用户注册时,必须提供完整的 个人有效信息才能进入系统。 ----7.注册允许限制:管理员可随时取消或恢复单 个用户、用户组甚至系统所有用户(Supervisor除外)的注册权限,只需设置注册允许字段Enabled 的值为False或True。 ----8.非法入侵限制:三次注册尝试不成功便保护 性关闭注册窗口,以防非法非法入侵者无限制尝试。 ----本文介绍了应用软件注册安全性问题的综合解决 方案,容易实现,便于扩充--如增加注册时间限制和记帐收费功能等,可建立较完善的注册 安全机制,适合大型商用软件开发。 155 [电脑技术]使用?和*两个通配符迅速批量(搜索)查找文件 [聊天工具]快速又高效 用Email免费发送网络传真__天极Yesky[常用软件]网管工具 用OH协助服务器进行安全监控 [常用软件]留住精彩 用“数码故事”制作DVD光碟[常用软件]小块头有大智慧 用Nero轻松设计个性化光盘 [常用软件]技高一筹 用Winamp播放影碟[VB.NET程序]用 VB 实现表单的自动提交 [VB.NET程序]用 VB 打开任意盘(硬盘/U盘/光盘)的文件.[VB.NET程序]用 VB 创建MS OFFICE的 COM 加载项 [VB.NET程序]如 何 用 API 播 放 CD
表1表Users.DB的结构 域名 类型 大小 关键字 说明 Name A 16 * 用户名 Password A 16 * 注册口令 Fullname A 32 用户全名 Group I 用户组号 Enabled L 注册允许
----4.设定Name,Group和Enabled为非空域(Required Field),Group的最小值为0,最大值为3,默认值为3,Enabled的默认值为True。用户组0为 系统管理员,可进行几乎任何操作;用户组1为软件操作人员,可进行除用户帐户管理以外 的操作,包括建立和删除数据;用户组2为普通用户,可使用系统资源,无修改权限,而用户 组3仅可浏览系统有限信息。 ----5.用口令"UserPassword"保护Users.DB表,存 于Data目录下。利用DatabaseDesktop向表中输入若干样本用户(见表2),然后关闭Database Desktop。 表2表Users.DB的样本用户 Name Password Fullname Group Enabled Supervisor AAAAAA SuperUser 0 True ector BBBBBB DirectorUser 1 True Guest 3 True User1 CCCCCC GeneralUser1 1 False User1 DDDDDD GeneralUser1 2 True User2 EEEEEE GeneralUser2 3 True ----表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主窗体中组件属性设置 组件 属性 设置 Form1 Caption Name MainForm Position poScreenCenter GroupBox1 Caption 用户信息 Label1 Caption 用户名称: Label2 Caption 用户全名: Label3 Caption 用户组号: Label4 Caption 登录日期: Label5 Caption 登录时间: Edit1 Name NameEdit Edit2 Name FullnameEdit Edit3 Name GroupEdit Edit4 Name DisplayDateEdit Edit5 Name DisplayTimeEdit ----8.数据模板。选择File/NewDataModule建立 数据模板LogDataModule,放入一个Ttable组件,如图1。属性按表4设置,命名其单元为MD.pas, 存入Login目录。 表4数据模板中组件属性设置 组件 属性 设置 Table1 DatabaseName UserInfo Name UsersTable TableName Users.DB ----9.创建注册窗体。选择File/NewForm创建一个 新窗体,并加入组件TLabel、TEdit和TbitBtn各两个。窗体和组件属性按表5设置,命名其单 元为Login.pas,存于Login目录。 表5注册窗体中组件属性设置 组件 属性 设置 Form2 ActiveControl UserNameEdit Caption 请注册 Name LoginDialogForm Position poScreenCenter Label1 Caption 用户: Label2 Caption 密码: Edit1 Name LoginNameEdit Text Edit2 Name PasswordEdit PasswordChar * Text BitBtn1 Caption 注册(&L) Enabled False Kind bkOK Name LoginBitBtn BitBtn2 Caption 取消(&C) Enabled True Kind bkCancel Name CancelBitBtn ----10.选择File/New命令,从NewItems的New页中 选择Unit项建一个无窗体单元Addition.pas存入Login目录,在其interface段输入下列语 句: usesClasses,Forms,Sysutils; type TApplicationUser=class(TComponent) private FUserName:string; FFullName:string; FUserGroup:Integer; public propertyUserName:stringread FUserNamewriteFUserName; propertyUserFullName:stringread FFullNamewriteFFullName; propertyUserGroup:Integerread FUserGroupwriteFUserGroup; end; var LoginUser:TApplicationUser; ----在implementation段加入下列语句: initialization LoginUser:=TapplicationUser.Create(Application); ----11.创建注册窗体(LoginDialogForm)的OnCreate 事件处理程序。在private段中声明CountDown为Integer变量,作为计数器,并将下述语句 插入begin与end之间: CountDown:=3;//允许尝试注册3次 ----12.建立用户名输入框(LoginNameEdit)的OnChange 事件处理程序,使窗体LoginDialogForm创建时注册按钮为灰色,用户输入登录名后才可用。 不难实现,源代码略。 ----13.创建注册过程。双击注册按钮(LoginBitBtn), 在begin和end之间输入其OnClick事件处理程序代码: ModalResult:=mrNone; try Session.AddPassword(UserPassword); LogDataModule.UsersTable.Open; //注册信息处理 ifnotLogDataModule.UsersTable.FindKey ([LoginNameEdit.Text,PasswordEdit.Text])then begin //处理注册次数 dec(CountDown); ifCountDown<=0thenModalResult:=mrCancelelse begin MessageBeep($FFFF); Application.MessageBox(请您重试一次!, 无效注册信息,mb_iconstop+mb_OK); //重设输入焦点 LoginNameEdit.SetFocus; end; exit; end; //检查注册允许值 ifnotLogDataModule.UsersTable.FieldByName (Enabled).AsBooleanthen begin MessageBeep($FFFF); Application.MessageBox(抱歉,您不能进入系统!, 使用权限终止,mb_iconexclamation+mb_OK); ModalResult:=mrCancel; exit; end; //获取注册用户信息 withLogDataModuledo begin LoginUser.UserName:=UsersTable. FieldByName(Name).AsString; LoginUser.UserFullName:=UsersTable. FieldByName(Fullname).AsString; LoginUser.UserGroup:=UsersTable. FieldByName(Group).AsInteger; End; ModalResult:=mrOK; //关闭表,清除密码 finally LogDataModule.UsersTable.Close; Session.RemovePassword(UserPassword); end; ----14.在Main.pas单元的uses中加入"Addition", 在Login.pas单元的implementation段增加uses语句: uses MD,Addition; ----15.打开过程文件Register.dpr,在uses语句中 加入"Controls",将"Application.run;"改为下列语句,只有注册成功时才启动系统,同 时释放注册窗体,以确保安全和减少内存占用。 ifLoginDialogForm.ShowModal=mrOKthen begin LoginDialogForm.Free; Application.Run; end; ----16.编译、运行。注册窗口见图2,输入用户名和 密码后点"注册"按钮。 ----如果注册信息有误,系统出现提示框,允许重新注 册,见图3。若三次尝试均不成功,注册窗口将保护性关闭。 ----访问权已被管理员终止的用户(Enabled的值为False), 例如用户User1以口令CCCCCC注册至用户组1,系统拒绝进入,见图4。 ----注册成功后将启动系统主程序。例如用户Supervisor 以口令AAAAAA注册,见图5。 ----上述方案具有以下特点: ----1.Supervisor用户具有至高无上的权利,由系 统创建,不能删除,仅Password和Fullname字段的值允许自行修改。主要负责系统维护和用 户帐户管理等工作,是系统的永久性特权用户。 ----2.确保用户帐户表Users.DB的安全致关重要, 本方案采用了较为可靠的关键性技术,就是注册过程(见步骤13)中"try…finally…end" 结构的应用。仅当用户按下"注册"按钮时,注册模块转送表Users.DB的密码并将其打开,以 处理注册信息。而无论成功与否,在finally部分都能及时关闭表Users.DB,并立即清除内 存中的密码。 ----3.用户帐户管理模块设在主程序中,完成表Users.DB 的维护功能,包括建立用户帐户和用户组,增、删用户,分配访问权限等。只有Supervisor或 其授权用户才可进入。 ----4.组帐户管理:用户按不同级别分组,再按组进 行权限分配,以简化管理。如系统可根据登录用户所属的用户组,十分方便地屏蔽相应菜单 项,以达到限制用户使用权限的目的。对用户群大的系统,此项技术的优越性尤为显著。 ----5.默认帐户限制:建立用户帐户时,系统默认其Group=3, 仅具备浏览有限信息之权限,不致因管理员一时疏忽使新建用户越权使用,危及系统安全。 ----6.单独帐户限制:用户注册时,必须提供完整的 个人有效信息才能进入系统。 ----7.注册允许限制:管理员可随时取消或恢复单 个用户、用户组甚至系统所有用户(Supervisor除外)的注册权限,只需设置注册允许字段Enabled 的值为False或True。 ----8.非法入侵限制:三次注册尝试不成功便保护 性关闭注册窗口,以防非法非法入侵者无限制尝试。 ----本文介绍了应用软件注册安全性问题的综合解决 方案,容易实现,便于扩充--如增加注册时间限制和记帐收费功能等,可建立较完善的注册 安全机制,适合大型商用软件开发。 155 [电脑技术]使用?和*两个通配符迅速批量(搜索)查找文件 [聊天工具]快速又高效 用Email免费发送网络传真__天极Yesky[常用软件]网管工具 用OH协助服务器进行安全监控 [常用软件]留住精彩 用“数码故事”制作DVD光碟[常用软件]小块头有大智慧 用Nero轻松设计个性化光盘 [常用软件]技高一筹 用Winamp播放影碟[VB.NET程序]用 VB 实现表单的自动提交 [VB.NET程序]用 VB 打开任意盘(硬盘/U盘/光盘)的文件.[VB.NET程序]用 VB 创建MS OFFICE的 COM 加载项 [VB.NET程序]如 何 用 API 播 放 CD
----5.用口令"UserPassword"保护Users.DB表,存 于Data目录下。利用DatabaseDesktop向表中输入若干样本用户(见表2),然后关闭Database Desktop。 表2表Users.DB的样本用户 Name Password Fullname Group Enabled Supervisor AAAAAA SuperUser 0 True ector BBBBBB DirectorUser 1 True Guest 3 True User1 CCCCCC GeneralUser1 1 False User1 DDDDDD GeneralUser1 2 True User2 EEEEEE GeneralUser2 3 True ----表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主窗体中组件属性设置 组件 属性 设置 Form1 Caption Name MainForm Position poScreenCenter GroupBox1 Caption 用户信息 Label1 Caption 用户名称: Label2 Caption 用户全名: Label3 Caption 用户组号: Label4 Caption 登录日期: Label5 Caption 登录时间: Edit1 Name NameEdit Edit2 Name FullnameEdit Edit3 Name GroupEdit Edit4 Name DisplayDateEdit Edit5 Name DisplayTimeEdit ----8.数据模板。选择File/NewDataModule建立 数据模板LogDataModule,放入一个Ttable组件,如图1。属性按表4设置,命名其单元为MD.pas, 存入Login目录。 表4数据模板中组件属性设置 组件 属性 设置 Table1 DatabaseName UserInfo Name UsersTable TableName Users.DB ----9.创建注册窗体。选择File/NewForm创建一个 新窗体,并加入组件TLabel、TEdit和TbitBtn各两个。窗体和组件属性按表5设置,命名其单 元为Login.pas,存于Login目录。 表5注册窗体中组件属性设置 组件 属性 设置 Form2 ActiveControl UserNameEdit Caption 请注册 Name LoginDialogForm Position poScreenCenter Label1 Caption 用户: Label2 Caption 密码: Edit1 Name LoginNameEdit Text Edit2 Name PasswordEdit PasswordChar * Text BitBtn1 Caption 注册(&L) Enabled False Kind bkOK Name LoginBitBtn BitBtn2 Caption 取消(&C) Enabled True Kind bkCancel Name CancelBitBtn ----10.选择File/New命令,从NewItems的New页中 选择Unit项建一个无窗体单元Addition.pas存入Login目录,在其interface段输入下列语 句: usesClasses,Forms,Sysutils; type TApplicationUser=class(TComponent) private FUserName:string; FFullName:string; FUserGroup:Integer; public propertyUserName:stringread FUserNamewriteFUserName; propertyUserFullName:stringread FFullNamewriteFFullName; propertyUserGroup:Integerread FUserGroupwriteFUserGroup; end; var LoginUser:TApplicationUser; ----在implementation段加入下列语句: initialization LoginUser:=TapplicationUser.Create(Application); ----11.创建注册窗体(LoginDialogForm)的OnCreate 事件处理程序。在private段中声明CountDown为Integer变量,作为计数器,并将下述语句 插入begin与end之间: CountDown:=3;//允许尝试注册3次 ----12.建立用户名输入框(LoginNameEdit)的OnChange 事件处理程序,使窗体LoginDialogForm创建时注册按钮为灰色,用户输入登录名后才可用。 不难实现,源代码略。 ----13.创建注册过程。双击注册按钮(LoginBitBtn), 在begin和end之间输入其OnClick事件处理程序代码: ModalResult:=mrNone; try Session.AddPassword(UserPassword); LogDataModule.UsersTable.Open; //注册信息处理 ifnotLogDataModule.UsersTable.FindKey ([LoginNameEdit.Text,PasswordEdit.Text])then begin //处理注册次数 dec(CountDown); ifCountDown<=0thenModalResult:=mrCancelelse begin MessageBeep($FFFF); Application.MessageBox(请您重试一次!, 无效注册信息,mb_iconstop+mb_OK); //重设输入焦点 LoginNameEdit.SetFocus; end; exit; end; //检查注册允许值 ifnotLogDataModule.UsersTable.FieldByName (Enabled).AsBooleanthen begin MessageBeep($FFFF); Application.MessageBox(抱歉,您不能进入系统!, 使用权限终止,mb_iconexclamation+mb_OK); ModalResult:=mrCancel; exit; end; //获取注册用户信息 withLogDataModuledo begin LoginUser.UserName:=UsersTable. FieldByName(Name).AsString; LoginUser.UserFullName:=UsersTable. FieldByName(Fullname).AsString; LoginUser.UserGroup:=UsersTable. FieldByName(Group).AsInteger; End; ModalResult:=mrOK; //关闭表,清除密码 finally LogDataModule.UsersTable.Close; Session.RemovePassword(UserPassword); end; ----14.在Main.pas单元的uses中加入"Addition", 在Login.pas单元的implementation段增加uses语句: uses MD,Addition; ----15.打开过程文件Register.dpr,在uses语句中 加入"Controls",将"Application.run;"改为下列语句,只有注册成功时才启动系统,同 时释放注册窗体,以确保安全和减少内存占用。 ifLoginDialogForm.ShowModal=mrOKthen begin LoginDialogForm.Free; Application.Run; end; ----16.编译、运行。注册窗口见图2,输入用户名和 密码后点"注册"按钮。 ----如果注册信息有误,系统出现提示框,允许重新注 册,见图3。若三次尝试均不成功,注册窗口将保护性关闭。 ----访问权已被管理员终止的用户(Enabled的值为False), 例如用户User1以口令CCCCCC注册至用户组1,系统拒绝进入,见图4。 ----注册成功后将启动系统主程序。例如用户Supervisor 以口令AAAAAA注册,见图5。 ----上述方案具有以下特点: ----1.Supervisor用户具有至高无上的权利,由系 统创建,不能删除,仅Password和Fullname字段的值允许自行修改。主要负责系统维护和用 户帐户管理等工作,是系统的永久性特权用户。 ----2.确保用户帐户表Users.DB的安全致关重要, 本方案采用了较为可靠的关键性技术,就是注册过程(见步骤13)中"try…finally…end" 结构的应用。仅当用户按下"注册"按钮时,注册模块转送表Users.DB的密码并将其打开,以 处理注册信息。而无论成功与否,在finally部分都能及时关闭表Users.DB,并立即清除内 存中的密码。 ----3.用户帐户管理模块设在主程序中,完成表Users.DB 的维护功能,包括建立用户帐户和用户组,增、删用户,分配访问权限等。只有Supervisor或 其授权用户才可进入。 ----4.组帐户管理:用户按不同级别分组,再按组进 行权限分配,以简化管理。如系统可根据登录用户所属的用户组,十分方便地屏蔽相应菜单 项,以达到限制用户使用权限的目的。对用户群大的系统,此项技术的优越性尤为显著。 ----5.默认帐户限制:建立用户帐户时,系统默认其Group=3, 仅具备浏览有限信息之权限,不致因管理员一时疏忽使新建用户越权使用,危及系统安全。 ----6.单独帐户限制:用户注册时,必须提供完整的 个人有效信息才能进入系统。 ----7.注册允许限制:管理员可随时取消或恢复单 个用户、用户组甚至系统所有用户(Supervisor除外)的注册权限,只需设置注册允许字段Enabled 的值为False或True。 ----8.非法入侵限制:三次注册尝试不成功便保护 性关闭注册窗口,以防非法非法入侵者无限制尝试。 ----本文介绍了应用软件注册安全性问题的综合解决 方案,容易实现,便于扩充--如增加注册时间限制和记帐收费功能等,可建立较完善的注册 安全机制,适合大型商用软件开发。 155 [电脑技术]使用?和*两个通配符迅速批量(搜索)查找文件 [聊天工具]快速又高效 用Email免费发送网络传真__天极Yesky[常用软件]网管工具 用OH协助服务器进行安全监控 [常用软件]留住精彩 用“数码故事”制作DVD光碟[常用软件]小块头有大智慧 用Nero轻松设计个性化光盘 [常用软件]技高一筹 用Winamp播放影碟[VB.NET程序]用 VB 实现表单的自动提交 [VB.NET程序]用 VB 打开任意盘(硬盘/U盘/光盘)的文件.[VB.NET程序]用 VB 创建MS OFFICE的 COM 加载项 [VB.NET程序]如 何 用 API 播 放 CD
表2表Users.DB的样本用户 Name Password Fullname Group Enabled Supervisor AAAAAA SuperUser 0 True ector BBBBBB DirectorUser 1 True Guest 3 True User1 CCCCCC GeneralUser1 1 False User1 DDDDDD GeneralUser1 2 True User2 EEEEEE GeneralUser2 3 True
----表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主窗体中组件属性设置 组件 属性 设置 Form1 Caption Name MainForm Position poScreenCenter GroupBox1 Caption 用户信息 Label1 Caption 用户名称: Label2 Caption 用户全名: Label3 Caption 用户组号: Label4 Caption 登录日期: Label5 Caption 登录时间: Edit1 Name NameEdit Edit2 Name FullnameEdit Edit3 Name GroupEdit Edit4 Name DisplayDateEdit Edit5 Name DisplayTimeEdit ----8.数据模板。选择File/NewDataModule建立 数据模板LogDataModule,放入一个Ttable组件,如图1。属性按表4设置,命名其单元为MD.pas, 存入Login目录。 表4数据模板中组件属性设置 组件 属性 设置 Table1 DatabaseName UserInfo Name UsersTable TableName Users.DB ----9.创建注册窗体。选择File/NewForm创建一个 新窗体,并加入组件TLabel、TEdit和TbitBtn各两个。窗体和组件属性按表5设置,命名其单 元为Login.pas,存于Login目录。 表5注册窗体中组件属性设置 组件 属性 设置 Form2 ActiveControl UserNameEdit Caption 请注册 Name LoginDialogForm Position poScreenCenter Label1 Caption 用户: Label2 Caption 密码: Edit1 Name LoginNameEdit Text Edit2 Name PasswordEdit PasswordChar * Text BitBtn1 Caption 注册(&L) Enabled False Kind bkOK Name LoginBitBtn BitBtn2 Caption 取消(&C) Enabled True Kind bkCancel Name CancelBitBtn ----10.选择File/New命令,从NewItems的New页中 选择Unit项建一个无窗体单元Addition.pas存入Login目录,在其interface段输入下列语 句: usesClasses,Forms,Sysutils; type TApplicationUser=class(TComponent) private FUserName:string; FFullName:string; FUserGroup:Integer; public propertyUserName:stringread FUserNamewriteFUserName; propertyUserFullName:stringread FFullNamewriteFFullName; propertyUserGroup:Integerread FUserGroupwriteFUserGroup; end; var LoginUser:TApplicationUser; ----在implementation段加入下列语句: initialization LoginUser:=TapplicationUser.Create(Application); ----11.创建注册窗体(LoginDialogForm)的OnCreate 事件处理程序。在private段中声明CountDown为Integer变量,作为计数器,并将下述语句 插入begin与end之间: CountDown:=3;//允许尝试注册3次 ----12.建立用户名输入框(LoginNameEdit)的OnChange 事件处理程序,使窗体LoginDialogForm创建时注册按钮为灰色,用户输入登录名后才可用。 不难实现,源代码略。 ----13.创建注册过程。双击注册按钮(LoginBitBtn), 在begin和end之间输入其OnClick事件处理程序代码: ModalResult:=mrNone; try Session.AddPassword(UserPassword); LogDataModule.UsersTable.Open; //注册信息处理 ifnotLogDataModule.UsersTable.FindKey ([LoginNameEdit.Text,PasswordEdit.Text])then begin //处理注册次数 dec(CountDown); ifCountDown<=0thenModalResult:=mrCancelelse begin MessageBeep($FFFF); Application.MessageBox(请您重试一次!, 无效注册信息,mb_iconstop+mb_OK); //重设输入焦点 LoginNameEdit.SetFocus; end; exit; end; //检查注册允许值 ifnotLogDataModule.UsersTable.FieldByName (Enabled).AsBooleanthen begin MessageBeep($FFFF); Application.MessageBox(抱歉,您不能进入系统!, 使用权限终止,mb_iconexclamation+mb_OK); ModalResult:=mrCancel; exit; end; //获取注册用户信息 withLogDataModuledo begin LoginUser.UserName:=UsersTable. FieldByName(Name).AsString; LoginUser.UserFullName:=UsersTable. FieldByName(Fullname).AsString; LoginUser.UserGroup:=UsersTable. FieldByName(Group).AsInteger; End; ModalResult:=mrOK; //关闭表,清除密码 finally LogDataModule.UsersTable.Close; Session.RemovePassword(UserPassword); end; ----14.在Main.pas单元的uses中加入"Addition", 在Login.pas单元的implementation段增加uses语句: uses MD,Addition; ----15.打开过程文件Register.dpr,在uses语句中 加入"Controls",将"Application.run;"改为下列语句,只有注册成功时才启动系统,同 时释放注册窗体,以确保安全和减少内存占用。 ifLoginDialogForm.ShowModal=mrOKthen begin LoginDialogForm.Free; Application.Run; end; ----16.编译、运行。注册窗口见图2,输入用户名和 密码后点"注册"按钮。 ----如果注册信息有误,系统出现提示框,允许重新注 册,见图3。若三次尝试均不成功,注册窗口将保护性关闭。 ----访问权已被管理员终止的用户(Enabled的值为False), 例如用户User1以口令CCCCCC注册至用户组1,系统拒绝进入,见图4。 ----注册成功后将启动系统主程序。例如用户Supervisor 以口令AAAAAA注册,见图5。 ----上述方案具有以下特点: ----1.Supervisor用户具有至高无上的权利,由系 统创建,不能删除,仅Password和Fullname字段的值允许自行修改。主要负责系统维护和用 户帐户管理等工作,是系统的永久性特权用户。 ----2.确保用户帐户表Users.DB的安全致关重要, 本方案采用了较为可靠的关键性技术,就是注册过程(见步骤13)中"try…finally…end" 结构的应用。仅当用户按下"注册"按钮时,注册模块转送表Users.DB的密码并将其打开,以 处理注册信息。而无论成功与否,在finally部分都能及时关闭表Users.DB,并立即清除内 存中的密码。 ----3.用户帐户管理模块设在主程序中,完成表Users.DB 的维护功能,包括建立用户帐户和用户组,增、删用户,分配访问权限等。只有Supervisor或 其授权用户才可进入。 ----4.组帐户管理:用户按不同级别分组,再按组进 行权限分配,以简化管理。如系统可根据登录用户所属的用户组,十分方便地屏蔽相应菜单 项,以达到限制用户使用权限的目的。对用户群大的系统,此项技术的优越性尤为显著。 ----5.默认帐户限制:建立用户帐户时,系统默认其Group=3, 仅具备浏览有限信息之权限,不致因管理员一时疏忽使新建用户越权使用,危及系统安全。 ----6.单独帐户限制:用户注册时,必须提供完整的 个人有效信息才能进入系统。 ----7.注册允许限制:管理员可随时取消或恢复单 个用户、用户组甚至系统所有用户(Supervisor除外)的注册权限,只需设置注册允许字段Enabled 的值为False或True。 ----8.非法入侵限制:三次注册尝试不成功便保护 性关闭注册窗口,以防非法非法入侵者无限制尝试。 ----本文介绍了应用软件注册安全性问题的综合解决 方案,容易实现,便于扩充--如增加注册时间限制和记帐收费功能等,可建立较完善的注册 安全机制,适合大型商用软件开发。 155 [电脑技术]使用?和*两个通配符迅速批量(搜索)查找文件 [聊天工具]快速又高效 用Email免费发送网络传真__天极Yesky[常用软件]网管工具 用OH协助服务器进行安全监控 [常用软件]留住精彩 用“数码故事”制作DVD光碟[常用软件]小块头有大智慧 用Nero轻松设计个性化光盘 [常用软件]技高一筹 用Winamp播放影碟[VB.NET程序]用 VB 实现表单的自动提交 [VB.NET程序]用 VB 打开任意盘(硬盘/U盘/光盘)的文件.[VB.NET程序]用 VB 创建MS OFFICE的 COM 加载项 [VB.NET程序]如 何 用 API 播 放 CD
----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主窗体中组件属性设置 组件 属性 设置 Form1 Caption Name MainForm Position poScreenCenter GroupBox1 Caption 用户信息 Label1 Caption 用户名称: Label2 Caption 用户全名: Label3 Caption 用户组号: Label4 Caption 登录日期: Label5 Caption 登录时间: Edit1 Name NameEdit Edit2 Name FullnameEdit Edit3 Name GroupEdit Edit4 Name DisplayDateEdit Edit5 Name DisplayTimeEdit ----8.数据模板。选择File/NewDataModule建立 数据模板LogDataModule,放入一个Ttable组件,如图1。属性按表4设置,命名其单元为MD.pas, 存入Login目录。 表4数据模板中组件属性设置 组件 属性 设置 Table1 DatabaseName UserInfo Name UsersTable TableName Users.DB ----9.创建注册窗体。选择File/NewForm创建一个 新窗体,并加入组件TLabel、TEdit和TbitBtn各两个。窗体和组件属性按表5设置,命名其单 元为Login.pas,存于Login目录。 表5注册窗体中组件属性设置 组件 属性 设置 Form2 ActiveControl UserNameEdit Caption 请注册 Name LoginDialogForm Position poScreenCenter Label1 Caption 用户: Label2 Caption 密码: Edit1 Name LoginNameEdit Text Edit2 Name PasswordEdit PasswordChar * Text BitBtn1 Caption 注册(&L) Enabled False Kind bkOK Name LoginBitBtn BitBtn2 Caption 取消(&C) Enabled True Kind bkCancel Name CancelBitBtn ----10.选择File/New命令,从NewItems的New页中 选择Unit项建一个无窗体单元Addition.pas存入Login目录,在其interface段输入下列语 句: usesClasses,Forms,Sysutils; type TApplicationUser=class(TComponent) private FUserName:string; FFullName:string; FUserGroup:Integer; public propertyUserName:stringread FUserNamewriteFUserName; propertyUserFullName:stringread FFullNamewriteFFullName; propertyUserGroup:Integerread FUserGroupwriteFUserGroup; end; var LoginUser:TApplicationUser; ----在implementation段加入下列语句: initialization LoginUser:=TapplicationUser.Create(Application); ----11.创建注册窗体(LoginDialogForm)的OnCreate 事件处理程序。在private段中声明CountDown为Integer变量,作为计数器,并将下述语句 插入begin与end之间: CountDown:=3;//允许尝试注册3次 ----12.建立用户名输入框(LoginNameEdit)的OnChange 事件处理程序,使窗体LoginDialogForm创建时注册按钮为灰色,用户输入登录名后才可用。 不难实现,源代码略。 ----13.创建注册过程。双击注册按钮(LoginBitBtn), 在begin和end之间输入其OnClick事件处理程序代码: ModalResult:=mrNone; try Session.AddPassword(UserPassword); LogDataModule.UsersTable.Open; //注册信息处理 ifnotLogDataModule.UsersTable.FindKey ([LoginNameEdit.Text,PasswordEdit.Text])then begin //处理注册次数 dec(CountDown); ifCountDown<=0thenModalResult:=mrCancelelse begin MessageBeep($FFFF); Application.MessageBox(请您重试一次!, 无效注册信息,mb_iconstop+mb_OK); //重设输入焦点 LoginNameEdit.SetFocus; end; exit; end; //检查注册允许值 ifnotLogDataModule.UsersTable.FieldByName (Enabled).AsBooleanthen begin MessageBeep($FFFF); Application.MessageBox(抱歉,您不能进入系统!, 使用权限终止,mb_iconexclamation+mb_OK); ModalResult:=mrCancel; exit; end; //获取注册用户信息 withLogDataModuledo begin LoginUser.UserName:=UsersTable. FieldByName(Name).AsString; LoginUser.UserFullName:=UsersTable. FieldByName(Fullname).AsString; LoginUser.UserGroup:=UsersTable. FieldByName(Group).AsInteger; End; ModalResult:=mrOK; //关闭表,清除密码 finally LogDataModule.UsersTable.Close; Session.RemovePassword(UserPassword); end; ----14.在Main.pas单元的uses中加入"Addition", 在Login.pas单元的implementation段增加uses语句: uses MD,Addition; ----15.打开过程文件Register.dpr,在uses语句中 加入"Controls",将"Application.run;"改为下列语句,只有注册成功时才启动系统,同 时释放注册窗体,以确保安全和减少内存占用。 ifLoginDialogForm.ShowModal=mrOKthen begin LoginDialogForm.Free; Application.Run; end; ----16.编译、运行。注册窗口见图2,输入用户名和 密码后点"注册"按钮。 ----如果注册信息有误,系统出现提示框,允许重新注 册,见图3。若三次尝试均不成功,注册窗口将保护性关闭。 ----访问权已被管理员终止的用户(Enabled的值为False), 例如用户User1以口令CCCCCC注册至用户组1,系统拒绝进入,见图4。 ----注册成功后将启动系统主程序。例如用户Supervisor 以口令AAAAAA注册,见图5。 ----上述方案具有以下特点: ----1.Supervisor用户具有至高无上的权利,由系 统创建,不能删除,仅Password和Fullname字段的值允许自行修改。主要负责系统维护和用 户帐户管理等工作,是系统的永久性特权用户。 ----2.确保用户帐户表Users.DB的安全致关重要, 本方案采用了较为可靠的关键性技术,就是注册过程(见步骤13)中"try…finally…end" 结构的应用。仅当用户按下"注册"按钮时,注册模块转送表Users.DB的密码并将其打开,以 处理注册信息。而无论成功与否,在finally部分都能及时关闭表Users.DB,并立即清除内 存中的密码。 ----3.用户帐户管理模块设在主程序中,完成表Users.DB 的维护功能,包括建立用户帐户和用户组,增、删用户,分配访问权限等。只有Supervisor或 其授权用户才可进入。 ----4.组帐户管理:用户按不同级别分组,再按组进 行权限分配,以简化管理。如系统可根据登录用户所属的用户组,十分方便地屏蔽相应菜单 项,以达到限制用户使用权限的目的。对用户群大的系统,此项技术的优越性尤为显著。 ----5.默认帐户限制:建立用户帐户时,系统默认其Group=3, 仅具备浏览有限信息之权限,不致因管理员一时疏忽使新建用户越权使用,危及系统安全。 ----6.单独帐户限制:用户注册时,必须提供完整的 个人有效信息才能进入系统。 ----7.注册允许限制:管理员可随时取消或恢复单 个用户、用户组甚至系统所有用户(Supervisor除外)的注册权限,只需设置注册允许字段Enabled 的值为False或True。 ----8.非法入侵限制:三次注册尝试不成功便保护 性关闭注册窗口,以防非法非法入侵者无限制尝试。 ----本文介绍了应用软件注册安全性问题的综合解决 方案,容易实现,便于扩充--如增加注册时间限制和记帐收费功能等,可建立较完善的注册 安全机制,适合大型商用软件开发。 155 [电脑技术]使用?和*两个通配符迅速批量(搜索)查找文件 [聊天工具]快速又高效 用Email免费发送网络传真__天极Yesky[常用软件]网管工具 用OH协助服务器进行安全监控 [常用软件]留住精彩 用“数码故事”制作DVD光碟[常用软件]小块头有大智慧 用Nero轻松设计个性化光盘 [常用软件]技高一筹 用Winamp播放影碟[VB.NET程序]用 VB 实现表单的自动提交 [VB.NET程序]用 VB 打开任意盘(硬盘/U盘/光盘)的文件.[VB.NET程序]用 VB 创建MS OFFICE的 COM 加载项 [VB.NET程序]如 何 用 API 播 放 CD
----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主窗体中组件属性设置 组件 属性 设置 Form1 Caption Name MainForm Position poScreenCenter GroupBox1 Caption 用户信息 Label1 Caption 用户名称: Label2 Caption 用户全名: Label3 Caption 用户组号: Label4 Caption 登录日期: Label5 Caption 登录时间: Edit1 Name NameEdit Edit2 Name FullnameEdit Edit3 Name GroupEdit Edit4 Name DisplayDateEdit Edit5 Name DisplayTimeEdit ----8.数据模板。选择File/NewDataModule建立 数据模板LogDataModule,放入一个Ttable组件,如图1。属性按表4设置,命名其单元为MD.pas, 存入Login目录。 表4数据模板中组件属性设置 组件 属性 设置 Table1 DatabaseName UserInfo Name UsersTable TableName Users.DB ----9.创建注册窗体。选择File/NewForm创建一个 新窗体,并加入组件TLabel、TEdit和TbitBtn各两个。窗体和组件属性按表5设置,命名其单 元为Login.pas,存于Login目录。 表5注册窗体中组件属性设置 组件 属性 设置 Form2 ActiveControl UserNameEdit Caption 请注册 Name LoginDialogForm Position poScreenCenter Label1 Caption 用户: Label2 Caption 密码: Edit1 Name LoginNameEdit Text Edit2 Name PasswordEdit PasswordChar * Text BitBtn1 Caption 注册(&L) Enabled False Kind bkOK Name LoginBitBtn BitBtn2 Caption 取消(&C) Enabled True Kind bkCancel Name CancelBitBtn ----10.选择File/New命令,从NewItems的New页中 选择Unit项建一个无窗体单元Addition.pas存入Login目录,在其interface段输入下列语 句: usesClasses,Forms,Sysutils; type TApplicationUser=class(TComponent) private FUserName:string; FFullName:string; FUserGroup:Integer; public propertyUserName:stringread FUserNamewriteFUserName; propertyUserFullName:stringread FFullNamewriteFFullName; propertyUserGroup:Integerread FUserGroupwriteFUserGroup; end; var LoginUser:TApplicationUser; ----在implementation段加入下列语句: initialization LoginUser:=TapplicationUser.Create(Application); ----11.创建注册窗体(LoginDialogForm)的OnCreate 事件处理程序。在private段中声明CountDown为Integer变量,作为计数器,并将下述语句 插入begin与end之间: CountDown:=3;//允许尝试注册3次 ----12.建立用户名输入框(LoginNameEdit)的OnChange 事件处理程序,使窗体LoginDialogForm创建时注册按钮为灰色,用户输入登录名后才可用。 不难实现,源代码略。 ----13.创建注册过程。双击注册按钮(LoginBitBtn), 在begin和end之间输入其OnClick事件处理程序代码: ModalResult:=mrNone; try Session.AddPassword(UserPassword); LogDataModule.UsersTable.Open; //注册信息处理 ifnotLogDataModule.UsersTable.FindKey ([LoginNameEdit.Text,PasswordEdit.Text])then begin //处理注册次数 dec(CountDown); ifCountDown<=0thenModalResult:=mrCancelelse begin MessageBeep($FFFF); Application.MessageBox(请您重试一次!, 无效注册信息,mb_iconstop+mb_OK); //重设输入焦点 LoginNameEdit.SetFocus; end; exit; end; //检查注册允许值 ifnotLogDataModule.UsersTable.FieldByName (Enabled).AsBooleanthen begin MessageBeep($FFFF); Application.MessageBox(抱歉,您不能进入系统!, 使用权限终止,mb_iconexclamation+mb_OK); ModalResult:=mrCancel; exit; end; //获取注册用户信息 withLogDataModuledo begin LoginUser.UserName:=UsersTable. FieldByName(Name).AsString; LoginUser.UserFullName:=UsersTable. FieldByName(Fullname).AsString; LoginUser.UserGroup:=UsersTable. FieldByName(Group).AsInteger; End; ModalResult:=mrOK; //关闭表,清除密码 finally LogDataModule.UsersTable.Close; Session.RemovePassword(UserPassword); end; ----14.在Main.pas单元的uses中加入"Addition", 在Login.pas单元的implementation段增加uses语句: uses MD,Addition; ----15.打开过程文件Register.dpr,在uses语句中 加入"Controls",将"Application.run;"改为下列语句,只有注册成功时才启动系统,同 时释放注册窗体,以确保安全和减少内存占用。 ifLoginDialogForm.ShowModal=mrOKthen begin LoginDialogForm.Free; Application.Run; end; ----16.编译、运行。注册窗口见图2,输入用户名和 密码后点"注册"按钮。 ----如果注册信息有误,系统出现提示框,允许重新注 册,见图3。若三次尝试均不成功,注册窗口将保护性关闭。 ----访问权已被管理员终止的用户(Enabled的值为False), 例如用户User1以口令CCCCCC注册至用户组1,系统拒绝进入,见图4。 ----注册成功后将启动系统主程序。例如用户Supervisor 以口令AAAAAA注册,见图5。 ----上述方案具有以下特点: ----1.Supervisor用户具有至高无上的权利,由系 统创建,不能删除,仅Password和Fullname字段的值允许自行修改。主要负责系统维护和用 户帐户管理等工作,是系统的永久性特权用户。 ----2.确保用户帐户表Users.DB的安全致关重要, 本方案采用了较为可靠的关键性技术,就是注册过程(见步骤13)中"try…finally…end" 结构的应用。仅当用户按下"注册"按钮时,注册模块转送表Users.DB的密码并将其打开,以 处理注册信息。而无论成功与否,在finally部分都能及时关闭表Users.DB,并立即清除内 存中的密码。 ----3.用户帐户管理模块设在主程序中,完成表Users.DB 的维护功能,包括建立用户帐户和用户组,增、删用户,分配访问权限等。只有Supervisor或 其授权用户才可进入。 ----4.组帐户管理:用户按不同级别分组,再按组进 行权限分配,以简化管理。如系统可根据登录用户所属的用户组,十分方便地屏蔽相应菜单 项,以达到限制用户使用权限的目的。对用户群大的系统,此项技术的优越性尤为显著。 ----5.默认帐户限制:建立用户帐户时,系统默认其Group=3, 仅具备浏览有限信息之权限,不致因管理员一时疏忽使新建用户越权使用,危及系统安全。 ----6.单独帐户限制:用户注册时,必须提供完整的 个人有效信息才能进入系统。 ----7.注册允许限制:管理员可随时取消或恢复单 个用户、用户组甚至系统所有用户(Supervisor除外)的注册权限,只需设置注册允许字段Enabled 的值为False或True。 ----8.非法入侵限制:三次注册尝试不成功便保护 性关闭注册窗口,以防非法非法入侵者无限制尝试。 ----本文介绍了应用软件注册安全性问题的综合解决 方案,容易实现,便于扩充--如增加注册时间限制和记帐收费功能等,可建立较完善的注册 安全机制,适合大型商用软件开发。 155 [电脑技术]使用?和*两个通配符迅速批量(搜索)查找文件 [聊天工具]快速又高效 用Email免费发送网络传真__天极Yesky[常用软件]网管工具 用OH协助服务器进行安全监控 [常用软件]留住精彩 用“数码故事”制作DVD光碟[常用软件]小块头有大智慧 用Nero轻松设计个性化光盘 [常用软件]技高一筹 用Winamp播放影碟[VB.NET程序]用 VB 实现表单的自动提交 [VB.NET程序]用 VB 打开任意盘(硬盘/U盘/光盘)的文件.[VB.NET程序]用 VB 创建MS OFFICE的 COM 加载项 [VB.NET程序]如 何 用 API 播 放 CD
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主窗体中组件属性设置 组件 属性 设置 Form1 Caption Name MainForm Position poScreenCenter GroupBox1 Caption 用户信息 Label1 Caption 用户名称: Label2 Caption 用户全名: Label3 Caption 用户组号: Label4 Caption 登录日期: Label5 Caption 登录时间: Edit1 Name NameEdit Edit2 Name FullnameEdit Edit3 Name GroupEdit Edit4 Name DisplayDateEdit Edit5 Name DisplayTimeEdit
----8.数据模板。选择File/NewDataModule建立 数据模板LogDataModule,放入一个Ttable组件,如图1。属性按表4设置,命名其单元为MD.pas, 存入Login目录。 表4数据模板中组件属性设置 组件 属性 设置 Table1 DatabaseName UserInfo Name UsersTable TableName Users.DB ----9.创建注册窗体。选择File/NewForm创建一个 新窗体,并加入组件TLabel、TEdit和TbitBtn各两个。窗体和组件属性按表5设置,命名其单 元为Login.pas,存于Login目录。 表5注册窗体中组件属性设置 组件 属性 设置 Form2 ActiveControl UserNameEdit Caption 请注册 Name LoginDialogForm Position poScreenCenter Label1 Caption 用户: Label2 Caption 密码: Edit1 Name LoginNameEdit Text Edit2 Name PasswordEdit PasswordChar * Text BitBtn1 Caption 注册(&L) Enabled False Kind bkOK Name LoginBitBtn BitBtn2 Caption 取消(&C) Enabled True Kind bkCancel Name CancelBitBtn ----10.选择File/New命令,从NewItems的New页中 选择Unit项建一个无窗体单元Addition.pas存入Login目录,在其interface段输入下列语 句: usesClasses,Forms,Sysutils; type TApplicationUser=class(TComponent) private FUserName:string; FFullName:string; FUserGroup:Integer; public propertyUserName:stringread FUserNamewriteFUserName; propertyUserFullName:stringread FFullNamewriteFFullName; propertyUserGroup:Integerread FUserGroupwriteFUserGroup; end; var LoginUser:TApplicationUser; ----在implementation段加入下列语句: initialization LoginUser:=TapplicationUser.Create(Application); ----11.创建注册窗体(LoginDialogForm)的OnCreate 事件处理程序。在private段中声明CountDown为Integer变量,作为计数器,并将下述语句 插入begin与end之间: CountDown:=3;//允许尝试注册3次 ----12.建立用户名输入框(LoginNameEdit)的OnChange 事件处理程序,使窗体LoginDialogForm创建时注册按钮为灰色,用户输入登录名后才可用。 不难实现,源代码略。 ----13.创建注册过程。双击注册按钮(LoginBitBtn), 在begin和end之间输入其OnClick事件处理程序代码: ModalResult:=mrNone; try Session.AddPassword(UserPassword); LogDataModule.UsersTable.Open; //注册信息处理 ifnotLogDataModule.UsersTable.FindKey ([LoginNameEdit.Text,PasswordEdit.Text])then begin //处理注册次数 dec(CountDown); ifCountDown<=0thenModalResult:=mrCancelelse begin MessageBeep($FFFF); Application.MessageBox(请您重试一次!, 无效注册信息,mb_iconstop+mb_OK); //重设输入焦点 LoginNameEdit.SetFocus; end; exit; end; //检查注册允许值 ifnotLogDataModule.UsersTable.FieldByName (Enabled).AsBooleanthen begin MessageBeep($FFFF); Application.MessageBox(抱歉,您不能进入系统!, 使用权限终止,mb_iconexclamation+mb_OK); ModalResult:=mrCancel; exit; end; //获取注册用户信息 withLogDataModuledo begin LoginUser.UserName:=UsersTable. FieldByName(Name).AsString; LoginUser.UserFullName:=UsersTable. FieldByName(Fullname).AsString; LoginUser.UserGroup:=UsersTable. FieldByName(Group).AsInteger; End; ModalResult:=mrOK; //关闭表,清除密码 finally LogDataModule.UsersTable.Close; Session.RemovePassword(UserPassword); end; ----14.在Main.pas单元的uses中加入"Addition", 在Login.pas单元的implementation段增加uses语句: uses MD,Addition; ----15.打开过程文件Register.dpr,在uses语句中 加入"Controls",将"Application.run;"改为下列语句,只有注册成功时才启动系统,同 时释放注册窗体,以确保安全和减少内存占用。 ifLoginDialogForm.ShowModal=mrOKthen begin LoginDialogForm.Free; Application.Run; end; ----16.编译、运行。注册窗口见图2,输入用户名和 密码后点"注册"按钮。 ----如果注册信息有误,系统出现提示框,允许重新注 册,见图3。若三次尝试均不成功,注册窗口将保护性关闭。 ----访问权已被管理员终止的用户(Enabled的值为False), 例如用户User1以口令CCCCCC注册至用户组1,系统拒绝进入,见图4。 ----注册成功后将启动系统主程序。例如用户Supervisor 以口令AAAAAA注册,见图5。 ----上述方案具有以下特点: ----1.Supervisor用户具有至高无上的权利,由系 统创建,不能删除,仅Password和Fullname字段的值允许自行修改。主要负责系统维护和用 户帐户管理等工作,是系统的永久性特权用户。 ----2.确保用户帐户表Users.DB的安全致关重要, 本方案采用了较为可靠的关键性技术,就是注册过程(见步骤13)中"try…finally…end" 结构的应用。仅当用户按下"注册"按钮时,注册模块转送表Users.DB的密码并将其打开,以 处理注册信息。而无论成功与否,在finally部分都能及时关闭表Users.DB,并立即清除内 存中的密码。 ----3.用户帐户管理模块设在主程序中,完成表Users.DB 的维护功能,包括建立用户帐户和用户组,增、删用户,分配访问权限等。只有Supervisor或 其授权用户才可进入。 ----4.组帐户管理:用户按不同级别分组,再按组进 行权限分配,以简化管理。如系统可根据登录用户所属的用户组,十分方便地屏蔽相应菜单 项,以达到限制用户使用权限的目的。对用户群大的系统,此项技术的优越性尤为显著。 ----5.默认帐户限制:建立用户帐户时,系统默认其Group=3, 仅具备浏览有限信息之权限,不致因管理员一时疏忽使新建用户越权使用,危及系统安全。 ----6.单独帐户限制:用户注册时,必须提供完整的 个人有效信息才能进入系统。 ----7.注册允许限制:管理员可随时取消或恢复单 个用户、用户组甚至系统所有用户(Supervisor除外)的注册权限,只需设置注册允许字段Enabled 的值为False或True。 ----8.非法入侵限制:三次注册尝试不成功便保护 性关闭注册窗口,以防非法非法入侵者无限制尝试。 ----本文介绍了应用软件注册安全性问题的综合解决 方案,容易实现,便于扩充--如增加注册时间限制和记帐收费功能等,可建立较完善的注册 安全机制,适合大型商用软件开发。 155 [电脑技术]使用?和*两个通配符迅速批量(搜索)查找文件 [聊天工具]快速又高效 用Email免费发送网络传真__天极Yesky[常用软件]网管工具 用OH协助服务器进行安全监控 [常用软件]留住精彩 用“数码故事”制作DVD光碟[常用软件]小块头有大智慧 用Nero轻松设计个性化光盘 [常用软件]技高一筹 用Winamp播放影碟[VB.NET程序]用 VB 实现表单的自动提交 [VB.NET程序]用 VB 打开任意盘(硬盘/U盘/光盘)的文件.[VB.NET程序]用 VB 创建MS OFFICE的 COM 加载项 [VB.NET程序]如 何 用 API 播 放 CD
表4数据模板中组件属性设置 组件 属性 设置 Table1 DatabaseName UserInfo Name UsersTable TableName Users.DB
----9.创建注册窗体。选择File/NewForm创建一个 新窗体,并加入组件TLabel、TEdit和TbitBtn各两个。窗体和组件属性按表5设置,命名其单 元为Login.pas,存于Login目录。 表5注册窗体中组件属性设置 组件 属性 设置 Form2 ActiveControl UserNameEdit Caption 请注册 Name LoginDialogForm Position poScreenCenter Label1 Caption 用户: Label2 Caption 密码: Edit1 Name LoginNameEdit Text Edit2 Name PasswordEdit PasswordChar * Text BitBtn1 Caption 注册(&L) Enabled False Kind bkOK Name LoginBitBtn BitBtn2 Caption 取消(&C) Enabled True Kind bkCancel Name CancelBitBtn ----10.选择File/New命令,从NewItems的New页中 选择Unit项建一个无窗体单元Addition.pas存入Login目录,在其interface段输入下列语 句: usesClasses,Forms,Sysutils; type TApplicationUser=class(TComponent) private FUserName:string; FFullName:string; FUserGroup:Integer; public propertyUserName:stringread FUserNamewriteFUserName; propertyUserFullName:stringread FFullNamewriteFFullName; propertyUserGroup:Integerread FUserGroupwriteFUserGroup; end; var LoginUser:TApplicationUser; ----在implementation段加入下列语句: initialization LoginUser:=TapplicationUser.Create(Application); ----11.创建注册窗体(LoginDialogForm)的OnCreate 事件处理程序。在private段中声明CountDown为Integer变量,作为计数器,并将下述语句 插入begin与end之间: CountDown:=3;//允许尝试注册3次 ----12.建立用户名输入框(LoginNameEdit)的OnChange 事件处理程序,使窗体LoginDialogForm创建时注册按钮为灰色,用户输入登录名后才可用。 不难实现,源代码略。 ----13.创建注册过程。双击注册按钮(LoginBitBtn), 在begin和end之间输入其OnClick事件处理程序代码: ModalResult:=mrNone; try Session.AddPassword(UserPassword); LogDataModule.UsersTable.Open; //注册信息处理 ifnotLogDataModule.UsersTable.FindKey ([LoginNameEdit.Text,PasswordEdit.Text])then begin //处理注册次数 dec(CountDown); ifCountDown<=0thenModalResult:=mrCancelelse begin MessageBeep($FFFF); Application.MessageBox(请您重试一次!, 无效注册信息,mb_iconstop+mb_OK); //重设输入焦点 LoginNameEdit.SetFocus; end; exit; end; //检查注册允许值 ifnotLogDataModule.UsersTable.FieldByName (Enabled).AsBooleanthen begin MessageBeep($FFFF); Application.MessageBox(抱歉,您不能进入系统!, 使用权限终止,mb_iconexclamation+mb_OK); ModalResult:=mrCancel; exit; end; //获取注册用户信息 withLogDataModuledo begin LoginUser.UserName:=UsersTable. FieldByName(Name).AsString; LoginUser.UserFullName:=UsersTable. FieldByName(Fullname).AsString; LoginUser.UserGroup:=UsersTable. FieldByName(Group).AsInteger; End; ModalResult:=mrOK; //关闭表,清除密码 finally LogDataModule.UsersTable.Close; Session.RemovePassword(UserPassword); end; ----14.在Main.pas单元的uses中加入"Addition", 在Login.pas单元的implementation段增加uses语句: uses MD,Addition; ----15.打开过程文件Register.dpr,在uses语句中 加入"Controls",将"Application.run;"改为下列语句,只有注册成功时才启动系统,同 时释放注册窗体,以确保安全和减少内存占用。 ifLoginDialogForm.ShowModal=mrOKthen begin LoginDialogForm.Free; Application.Run; end; ----16.编译、运行。注册窗口见图2,输入用户名和 密码后点"注册"按钮。 ----如果注册信息有误,系统出现提示框,允许重新注 册,见图3。若三次尝试均不成功,注册窗口将保护性关闭。 ----访问权已被管理员终止的用户(Enabled的值为False), 例如用户User1以口令CCCCCC注册至用户组1,系统拒绝进入,见图4。 ----注册成功后将启动系统主程序。例如用户Supervisor 以口令AAAAAA注册,见图5。 ----上述方案具有以下特点: ----1.Supervisor用户具有至高无上的权利,由系 统创建,不能删除,仅Password和Fullname字段的值允许自行修改。主要负责系统维护和用 户帐户管理等工作,是系统的永久性特权用户。 ----2.确保用户帐户表Users.DB的安全致关重要, 本方案采用了较为可靠的关键性技术,就是注册过程(见步骤13)中"try…finally…end" 结构的应用。仅当用户按下"注册"按钮时,注册模块转送表Users.DB的密码并将其打开,以 处理注册信息。而无论成功与否,在finally部分都能及时关闭表Users.DB,并立即清除内 存中的密码。 ----3.用户帐户管理模块设在主程序中,完成表Users.DB 的维护功能,包括建立用户帐户和用户组,增、删用户,分配访问权限等。只有Supervisor或 其授权用户才可进入。 ----4.组帐户管理:用户按不同级别分组,再按组进 行权限分配,以简化管理。如系统可根据登录用户所属的用户组,十分方便地屏蔽相应菜单 项,以达到限制用户使用权限的目的。对用户群大的系统,此项技术的优越性尤为显著。 ----5.默认帐户限制:建立用户帐户时,系统默认其Group=3, 仅具备浏览有限信息之权限,不致因管理员一时疏忽使新建用户越权使用,危及系统安全。 ----6.单独帐户限制:用户注册时,必须提供完整的 个人有效信息才能进入系统。 ----7.注册允许限制:管理员可随时取消或恢复单 个用户、用户组甚至系统所有用户(Supervisor除外)的注册权限,只需设置注册允许字段Enabled 的值为False或True。 ----8.非法入侵限制:三次注册尝试不成功便保护 性关闭注册窗口,以防非法非法入侵者无限制尝试。 ----本文介绍了应用软件注册安全性问题的综合解决 方案,容易实现,便于扩充--如增加注册时间限制和记帐收费功能等,可建立较完善的注册 安全机制,适合大型商用软件开发。 155 [电脑技术]使用?和*两个通配符迅速批量(搜索)查找文件 [聊天工具]快速又高效 用Email免费发送网络传真__天极Yesky[常用软件]网管工具 用OH协助服务器进行安全监控 [常用软件]留住精彩 用“数码故事”制作DVD光碟[常用软件]小块头有大智慧 用Nero轻松设计个性化光盘 [常用软件]技高一筹 用Winamp播放影碟[VB.NET程序]用 VB 实现表单的自动提交 [VB.NET程序]用 VB 打开任意盘(硬盘/U盘/光盘)的文件.[VB.NET程序]用 VB 创建MS OFFICE的 COM 加载项 [VB.NET程序]如 何 用 API 播 放 CD
表5注册窗体中组件属性设置 组件 属性 设置 Form2 ActiveControl UserNameEdit Caption 请注册 Name LoginDialogForm Position poScreenCenter Label1 Caption 用户: Label2 Caption 密码: Edit1 Name LoginNameEdit Text Edit2 Name PasswordEdit PasswordChar * Text BitBtn1 Caption 注册(&L) Enabled False Kind bkOK Name LoginBitBtn BitBtn2 Caption 取消(&C) Enabled True Kind bkCancel Name CancelBitBtn
----10.选择File/New命令,从NewItems的New页中 选择Unit项建一个无窗体单元Addition.pas存入Login目录,在其interface段输入下列语 句: usesClasses,Forms,Sysutils; type TApplicationUser=class(TComponent) private FUserName:string; FFullName:string; FUserGroup:Integer; public propertyUserName:stringread FUserNamewriteFUserName; propertyUserFullName:stringread FFullNamewriteFFullName; propertyUserGroup:Integerread FUserGroupwriteFUserGroup; end; var LoginUser:TApplicationUser; ----在implementation段加入下列语句: initialization LoginUser:=TapplicationUser.Create(Application); ----11.创建注册窗体(LoginDialogForm)的OnCreate 事件处理程序。在private段中声明CountDown为Integer变量,作为计数器,并将下述语句 插入begin与end之间: CountDown:=3;//允许尝试注册3次 ----12.建立用户名输入框(LoginNameEdit)的OnChange 事件处理程序,使窗体LoginDialogForm创建时注册按钮为灰色,用户输入登录名后才可用。 不难实现,源代码略。 ----13.创建注册过程。双击注册按钮(LoginBitBtn), 在begin和end之间输入其OnClick事件处理程序代码: ModalResult:=mrNone; try Session.AddPassword(UserPassword); LogDataModule.UsersTable.Open; //注册信息处理 ifnotLogDataModule.UsersTable.FindKey ([LoginNameEdit.Text,PasswordEdit.Text])then begin //处理注册次数 dec(CountDown); ifCountDown<=0thenModalResult:=mrCancelelse begin MessageBeep($FFFF); Application.MessageBox(请您重试一次!, 无效注册信息,mb_iconstop+mb_OK); //重设输入焦点 LoginNameEdit.SetFocus; end; exit; end; //检查注册允许值 ifnotLogDataModule.UsersTable.FieldByName (Enabled).AsBooleanthen begin MessageBeep($FFFF); Application.MessageBox(抱歉,您不能进入系统!, 使用权限终止,mb_iconexclamation+mb_OK); ModalResult:=mrCancel; exit; end; //获取注册用户信息 withLogDataModuledo begin LoginUser.UserName:=UsersTable. FieldByName(Name).AsString; LoginUser.UserFullName:=UsersTable. FieldByName(Fullname).AsString; LoginUser.UserGroup:=UsersTable. FieldByName(Group).AsInteger; End; ModalResult:=mrOK; //关闭表,清除密码 finally LogDataModule.UsersTable.Close; Session.RemovePassword(UserPassword); end; ----14.在Main.pas单元的uses中加入"Addition", 在Login.pas单元的implementation段增加uses语句: uses MD,Addition; ----15.打开过程文件Register.dpr,在uses语句中 加入"Controls",将"Application.run;"改为下列语句,只有注册成功时才启动系统,同 时释放注册窗体,以确保安全和减少内存占用。 ifLoginDialogForm.ShowModal=mrOKthen begin LoginDialogForm.Free; Application.Run; end; ----16.编译、运行。注册窗口见图2,输入用户名和 密码后点"注册"按钮。 ----如果注册信息有误,系统出现提示框,允许重新注 册,见图3。若三次尝试均不成功,注册窗口将保护性关闭。 ----访问权已被管理员终止的用户(Enabled的值为False), 例如用户User1以口令CCCCCC注册至用户组1,系统拒绝进入,见图4。 ----注册成功后将启动系统主程序。例如用户Supervisor 以口令AAAAAA注册,见图5。 ----上述方案具有以下特点: ----1.Supervisor用户具有至高无上的权利,由系 统创建,不能删除,仅Password和Fullname字段的值允许自行修改。主要负责系统维护和用 户帐户管理等工作,是系统的永久性特权用户。 ----2.确保用户帐户表Users.DB的安全致关重要, 本方案采用了较为可靠的关键性技术,就是注册过程(见步骤13)中"try…finally…end" 结构的应用。仅当用户按下"注册"按钮时,注册模块转送表Users.DB的密码并将其打开,以 处理注册信息。而无论成功与否,在finally部分都能及时关闭表Users.DB,并立即清除内 存中的密码。 ----3.用户帐户管理模块设在主程序中,完成表Users.DB 的维护功能,包括建立用户帐户和用户组,增、删用户,分配访问权限等。只有Supervisor或 其授权用户才可进入。 ----4.组帐户管理:用户按不同级别分组,再按组进 行权限分配,以简化管理。如系统可根据登录用户所属的用户组,十分方便地屏蔽相应菜单 项,以达到限制用户使用权限的目的。对用户群大的系统,此项技术的优越性尤为显著。 ----5.默认帐户限制:建立用户帐户时,系统默认其Group=3, 仅具备浏览有限信息之权限,不致因管理员一时疏忽使新建用户越权使用,危及系统安全。 ----6.单独帐户限制:用户注册时,必须提供完整的 个人有效信息才能进入系统。 ----7.注册允许限制:管理员可随时取消或恢复单 个用户、用户组甚至系统所有用户(Supervisor除外)的注册权限,只需设置注册允许字段Enabled 的值为False或True。 ----8.非法入侵限制:三次注册尝试不成功便保护 性关闭注册窗口,以防非法非法入侵者无限制尝试。 ----本文介绍了应用软件注册安全性问题的综合解决 方案,容易实现,便于扩充--如增加注册时间限制和记帐收费功能等,可建立较完善的注册 安全机制,适合大型商用软件开发。 155 [电脑技术]使用?和*两个通配符迅速批量(搜索)查找文件 [聊天工具]快速又高效 用Email免费发送网络传真__天极Yesky[常用软件]网管工具 用OH协助服务器进行安全监控 [常用软件]留住精彩 用“数码故事”制作DVD光碟[常用软件]小块头有大智慧 用Nero轻松设计个性化光盘 [常用软件]技高一筹 用Winamp播放影碟[VB.NET程序]用 VB 实现表单的自动提交 [VB.NET程序]用 VB 打开任意盘(硬盘/U盘/光盘)的文件.[VB.NET程序]用 VB 创建MS OFFICE的 COM 加载项 [VB.NET程序]如 何 用 API 播 放 CD
usesClasses,Forms,Sysutils; type TApplicationUser=class(TComponent) private FUserName:string; FFullName:string; FUserGroup:Integer; public propertyUserName:stringread FUserNamewriteFUserName; propertyUserFullName:stringread FFullNamewriteFFullName; propertyUserGroup:Integerread FUserGroupwriteFUserGroup; end; var LoginUser:TApplicationUser;
----在implementation段加入下列语句: initialization LoginUser:=TapplicationUser.Create(Application); ----11.创建注册窗体(LoginDialogForm)的OnCreate 事件处理程序。在private段中声明CountDown为Integer变量,作为计数器,并将下述语句 插入begin与end之间: CountDown:=3;//允许尝试注册3次 ----12.建立用户名输入框(LoginNameEdit)的OnChange 事件处理程序,使窗体LoginDialogForm创建时注册按钮为灰色,用户输入登录名后才可用。 不难实现,源代码略。 ----13.创建注册过程。双击注册按钮(LoginBitBtn), 在begin和end之间输入其OnClick事件处理程序代码: ModalResult:=mrNone; try Session.AddPassword(UserPassword); LogDataModule.UsersTable.Open; //注册信息处理 ifnotLogDataModule.UsersTable.FindKey ([LoginNameEdit.Text,PasswordEdit.Text])then begin //处理注册次数 dec(CountDown); ifCountDown<=0thenModalResult:=mrCancelelse begin MessageBeep($FFFF); Application.MessageBox(请您重试一次!, 无效注册信息,mb_iconstop+mb_OK); //重设输入焦点 LoginNameEdit.SetFocus; end; exit; end; //检查注册允许值 ifnotLogDataModule.UsersTable.FieldByName (Enabled).AsBooleanthen begin MessageBeep($FFFF); Application.MessageBox(抱歉,您不能进入系统!, 使用权限终止,mb_iconexclamation+mb_OK); ModalResult:=mrCancel; exit; end; //获取注册用户信息 withLogDataModuledo begin LoginUser.UserName:=UsersTable. FieldByName(Name).AsString; LoginUser.UserFullName:=UsersTable. FieldByName(Fullname).AsString; LoginUser.UserGroup:=UsersTable. FieldByName(Group).AsInteger; End; ModalResult:=mrOK; //关闭表,清除密码 finally LogDataModule.UsersTable.Close; Session.RemovePassword(UserPassword); end; ----14.在Main.pas单元的uses中加入"Addition", 在Login.pas单元的implementation段增加uses语句: uses MD,Addition; ----15.打开过程文件Register.dpr,在uses语句中 加入"Controls",将"Application.run;"改为下列语句,只有注册成功时才启动系统,同 时释放注册窗体,以确保安全和减少内存占用。 ifLoginDialogForm.ShowModal=mrOKthen begin LoginDialogForm.Free; Application.Run; end; ----16.编译、运行。注册窗口见图2,输入用户名和 密码后点"注册"按钮。 ----如果注册信息有误,系统出现提示框,允许重新注 册,见图3。若三次尝试均不成功,注册窗口将保护性关闭。 ----访问权已被管理员终止的用户(Enabled的值为False), 例如用户User1以口令CCCCCC注册至用户组1,系统拒绝进入,见图4。 ----注册成功后将启动系统主程序。例如用户Supervisor 以口令AAAAAA注册,见图5。 ----上述方案具有以下特点: ----1.Supervisor用户具有至高无上的权利,由系 统创建,不能删除,仅Password和Fullname字段的值允许自行修改。主要负责系统维护和用 户帐户管理等工作,是系统的永久性特权用户。 ----2.确保用户帐户表Users.DB的安全致关重要, 本方案采用了较为可靠的关键性技术,就是注册过程(见步骤13)中"try…finally…end" 结构的应用。仅当用户按下"注册"按钮时,注册模块转送表Users.DB的密码并将其打开,以 处理注册信息。而无论成功与否,在finally部分都能及时关闭表Users.DB,并立即清除内 存中的密码。 ----3.用户帐户管理模块设在主程序中,完成表Users.DB 的维护功能,包括建立用户帐户和用户组,增、删用户,分配访问权限等。只有Supervisor或 其授权用户才可进入。 ----4.组帐户管理:用户按不同级别分组,再按组进 行权限分配,以简化管理。如系统可根据登录用户所属的用户组,十分方便地屏蔽相应菜单 项,以达到限制用户使用权限的目的。对用户群大的系统,此项技术的优越性尤为显著。 ----5.默认帐户限制:建立用户帐户时,系统默认其Group=3, 仅具备浏览有限信息之权限,不致因管理员一时疏忽使新建用户越权使用,危及系统安全。 ----6.单独帐户限制:用户注册时,必须提供完整的 个人有效信息才能进入系统。 ----7.注册允许限制:管理员可随时取消或恢复单 个用户、用户组甚至系统所有用户(Supervisor除外)的注册权限,只需设置注册允许字段Enabled 的值为False或True。 ----8.非法入侵限制:三次注册尝试不成功便保护 性关闭注册窗口,以防非法非法入侵者无限制尝试。 ----本文介绍了应用软件注册安全性问题的综合解决 方案,容易实现,便于扩充--如增加注册时间限制和记帐收费功能等,可建立较完善的注册 安全机制,适合大型商用软件开发。 155 [电脑技术]使用?和*两个通配符迅速批量(搜索)查找文件 [聊天工具]快速又高效 用Email免费发送网络传真__天极Yesky[常用软件]网管工具 用OH协助服务器进行安全监控 [常用软件]留住精彩 用“数码故事”制作DVD光碟[常用软件]小块头有大智慧 用Nero轻松设计个性化光盘 [常用软件]技高一筹 用Winamp播放影碟[VB.NET程序]用 VB 实现表单的自动提交 [VB.NET程序]用 VB 打开任意盘(硬盘/U盘/光盘)的文件.[VB.NET程序]用 VB 创建MS OFFICE的 COM 加载项 [VB.NET程序]如 何 用 API 播 放 CD
initialization LoginUser:=TapplicationUser.Create(Application);
----11.创建注册窗体(LoginDialogForm)的OnCreate 事件处理程序。在private段中声明CountDown为Integer变量,作为计数器,并将下述语句 插入begin与end之间: CountDown:=3;//允许尝试注册3次 ----12.建立用户名输入框(LoginNameEdit)的OnChange 事件处理程序,使窗体LoginDialogForm创建时注册按钮为灰色,用户输入登录名后才可用。 不难实现,源代码略。 ----13.创建注册过程。双击注册按钮(LoginBitBtn), 在begin和end之间输入其OnClick事件处理程序代码: ModalResult:=mrNone; try Session.AddPassword(UserPassword); LogDataModule.UsersTable.Open; //注册信息处理 ifnotLogDataModule.UsersTable.FindKey ([LoginNameEdit.Text,PasswordEdit.Text])then begin //处理注册次数 dec(CountDown); ifCountDown<=0thenModalResult:=mrCancelelse begin MessageBeep($FFFF); Application.MessageBox(请您重试一次!, 无效注册信息,mb_iconstop+mb_OK); //重设输入焦点 LoginNameEdit.SetFocus; end; exit; end; //检查注册允许值 ifnotLogDataModule.UsersTable.FieldByName (Enabled).AsBooleanthen begin MessageBeep($FFFF); Application.MessageBox(抱歉,您不能进入系统!, 使用权限终止,mb_iconexclamation+mb_OK); ModalResult:=mrCancel; exit; end; //获取注册用户信息 withLogDataModuledo begin LoginUser.UserName:=UsersTable. FieldByName(Name).AsString; LoginUser.UserFullName:=UsersTable. FieldByName(Fullname).AsString; LoginUser.UserGroup:=UsersTable. FieldByName(Group).AsInteger; End; ModalResult:=mrOK; //关闭表,清除密码 finally LogDataModule.UsersTable.Close; Session.RemovePassword(UserPassword); end; ----14.在Main.pas单元的uses中加入"Addition", 在Login.pas单元的implementation段增加uses语句: uses MD,Addition; ----15.打开过程文件Register.dpr,在uses语句中 加入"Controls",将"Application.run;"改为下列语句,只有注册成功时才启动系统,同 时释放注册窗体,以确保安全和减少内存占用。 ifLoginDialogForm.ShowModal=mrOKthen begin LoginDialogForm.Free; Application.Run; end; ----16.编译、运行。注册窗口见图2,输入用户名和 密码后点"注册"按钮。 ----如果注册信息有误,系统出现提示框,允许重新注 册,见图3。若三次尝试均不成功,注册窗口将保护性关闭。 ----访问权已被管理员终止的用户(Enabled的值为False), 例如用户User1以口令CCCCCC注册至用户组1,系统拒绝进入,见图4。 ----注册成功后将启动系统主程序。例如用户Supervisor 以口令AAAAAA注册,见图5。 ----上述方案具有以下特点: ----1.Supervisor用户具有至高无上的权利,由系 统创建,不能删除,仅Password和Fullname字段的值允许自行修改。主要负责系统维护和用 户帐户管理等工作,是系统的永久性特权用户。 ----2.确保用户帐户表Users.DB的安全致关重要, 本方案采用了较为可靠的关键性技术,就是注册过程(见步骤13)中"try…finally…end" 结构的应用。仅当用户按下"注册"按钮时,注册模块转送表Users.DB的密码并将其打开,以 处理注册信息。而无论成功与否,在finally部分都能及时关闭表Users.DB,并立即清除内 存中的密码。 ----3.用户帐户管理模块设在主程序中,完成表Users.DB 的维护功能,包括建立用户帐户和用户组,增、删用户,分配访问权限等。只有Supervisor或 其授权用户才可进入。 ----4.组帐户管理:用户按不同级别分组,再按组进 行权限分配,以简化管理。如系统可根据登录用户所属的用户组,十分方便地屏蔽相应菜单 项,以达到限制用户使用权限的目的。对用户群大的系统,此项技术的优越性尤为显著。 ----5.默认帐户限制:建立用户帐户时,系统默认其Group=3, 仅具备浏览有限信息之权限,不致因管理员一时疏忽使新建用户越权使用,危及系统安全。 ----6.单独帐户限制:用户注册时,必须提供完整的 个人有效信息才能进入系统。 ----7.注册允许限制:管理员可随时取消或恢复单 个用户、用户组甚至系统所有用户(Supervisor除外)的注册权限,只需设置注册允许字段Enabled 的值为False或True。 ----8.非法入侵限制:三次注册尝试不成功便保护 性关闭注册窗口,以防非法非法入侵者无限制尝试。 ----本文介绍了应用软件注册安全性问题的综合解决 方案,容易实现,便于扩充--如增加注册时间限制和记帐收费功能等,可建立较完善的注册 安全机制,适合大型商用软件开发。 155 [电脑技术]使用?和*两个通配符迅速批量(搜索)查找文件 [聊天工具]快速又高效 用Email免费发送网络传真__天极Yesky[常用软件]网管工具 用OH协助服务器进行安全监控 [常用软件]留住精彩 用“数码故事”制作DVD光碟[常用软件]小块头有大智慧 用Nero轻松设计个性化光盘 [常用软件]技高一筹 用Winamp播放影碟[VB.NET程序]用 VB 实现表单的自动提交 [VB.NET程序]用 VB 打开任意盘(硬盘/U盘/光盘)的文件.[VB.NET程序]用 VB 创建MS OFFICE的 COM 加载项 [VB.NET程序]如 何 用 API 播 放 CD
CountDown:=3;//允许尝试注册3次
----12.建立用户名输入框(LoginNameEdit)的OnChange 事件处理程序,使窗体LoginDialogForm创建时注册按钮为灰色,用户输入登录名后才可用。 不难实现,源代码略。 ----13.创建注册过程。双击注册按钮(LoginBitBtn), 在begin和end之间输入其OnClick事件处理程序代码: ModalResult:=mrNone; try Session.AddPassword(UserPassword); LogDataModule.UsersTable.Open; //注册信息处理 ifnotLogDataModule.UsersTable.FindKey ([LoginNameEdit.Text,PasswordEdit.Text])then begin //处理注册次数 dec(CountDown); ifCountDown<=0thenModalResult:=mrCancelelse begin MessageBeep($FFFF); Application.MessageBox(请您重试一次!, 无效注册信息,mb_iconstop+mb_OK); //重设输入焦点 LoginNameEdit.SetFocus; end; exit; end; //检查注册允许值 ifnotLogDataModule.UsersTable.FieldByName (Enabled).AsBooleanthen begin MessageBeep($FFFF); Application.MessageBox(抱歉,您不能进入系统!, 使用权限终止,mb_iconexclamation+mb_OK); ModalResult:=mrCancel; exit; end; //获取注册用户信息 withLogDataModuledo begin LoginUser.UserName:=UsersTable. FieldByName(Name).AsString; LoginUser.UserFullName:=UsersTable. FieldByName(Fullname).AsString; LoginUser.UserGroup:=UsersTable. FieldByName(Group).AsInteger; End; ModalResult:=mrOK; //关闭表,清除密码 finally LogDataModule.UsersTable.Close; Session.RemovePassword(UserPassword); end; ----14.在Main.pas单元的uses中加入"Addition", 在Login.pas单元的implementation段增加uses语句: uses MD,Addition; ----15.打开过程文件Register.dpr,在uses语句中 加入"Controls",将"Application.run;"改为下列语句,只有注册成功时才启动系统,同 时释放注册窗体,以确保安全和减少内存占用。 ifLoginDialogForm.ShowModal=mrOKthen begin LoginDialogForm.Free; Application.Run; end; ----16.编译、运行。注册窗口见图2,输入用户名和 密码后点"注册"按钮。 ----如果注册信息有误,系统出现提示框,允许重新注 册,见图3。若三次尝试均不成功,注册窗口将保护性关闭。 ----访问权已被管理员终止的用户(Enabled的值为False), 例如用户User1以口令CCCCCC注册至用户组1,系统拒绝进入,见图4。 ----注册成功后将启动系统主程序。例如用户Supervisor 以口令AAAAAA注册,见图5。 ----上述方案具有以下特点: ----1.Supervisor用户具有至高无上的权利,由系 统创建,不能删除,仅Password和Fullname字段的值允许自行修改。主要负责系统维护和用 户帐户管理等工作,是系统的永久性特权用户。 ----2.确保用户帐户表Users.DB的安全致关重要, 本方案采用了较为可靠的关键性技术,就是注册过程(见步骤13)中"try…finally…end" 结构的应用。仅当用户按下"注册"按钮时,注册模块转送表Users.DB的密码并将其打开,以 处理注册信息。而无论成功与否,在finally部分都能及时关闭表Users.DB,并立即清除内 存中的密码。 ----3.用户帐户管理模块设在主程序中,完成表Users.DB 的维护功能,包括建立用户帐户和用户组,增、删用户,分配访问权限等。只有Supervisor或 其授权用户才可进入。 ----4.组帐户管理:用户按不同级别分组,再按组进 行权限分配,以简化管理。如系统可根据登录用户所属的用户组,十分方便地屏蔽相应菜单 项,以达到限制用户使用权限的目的。对用户群大的系统,此项技术的优越性尤为显著。 ----5.默认帐户限制:建立用户帐户时,系统默认其Group=3, 仅具备浏览有限信息之权限,不致因管理员一时疏忽使新建用户越权使用,危及系统安全。 ----6.单独帐户限制:用户注册时,必须提供完整的 个人有效信息才能进入系统。 ----7.注册允许限制:管理员可随时取消或恢复单 个用户、用户组甚至系统所有用户(Supervisor除外)的注册权限,只需设置注册允许字段Enabled 的值为False或True。 ----8.非法入侵限制:三次注册尝试不成功便保护 性关闭注册窗口,以防非法非法入侵者无限制尝试。 ----本文介绍了应用软件注册安全性问题的综合解决 方案,容易实现,便于扩充--如增加注册时间限制和记帐收费功能等,可建立较完善的注册 安全机制,适合大型商用软件开发。 155 [电脑技术]使用?和*两个通配符迅速批量(搜索)查找文件 [聊天工具]快速又高效 用Email免费发送网络传真__天极Yesky[常用软件]网管工具 用OH协助服务器进行安全监控 [常用软件]留住精彩 用“数码故事”制作DVD光碟[常用软件]小块头有大智慧 用Nero轻松设计个性化光盘 [常用软件]技高一筹 用Winamp播放影碟[VB.NET程序]用 VB 实现表单的自动提交 [VB.NET程序]用 VB 打开任意盘(硬盘/U盘/光盘)的文件.[VB.NET程序]用 VB 创建MS OFFICE的 COM 加载项 [VB.NET程序]如 何 用 API 播 放 CD
----13.创建注册过程。双击注册按钮(LoginBitBtn), 在begin和end之间输入其OnClick事件处理程序代码: ModalResult:=mrNone; try Session.AddPassword(UserPassword); LogDataModule.UsersTable.Open; //注册信息处理 ifnotLogDataModule.UsersTable.FindKey ([LoginNameEdit.Text,PasswordEdit.Text])then begin //处理注册次数 dec(CountDown); ifCountDown<=0thenModalResult:=mrCancelelse begin MessageBeep($FFFF); Application.MessageBox(请您重试一次!, 无效注册信息,mb_iconstop+mb_OK); //重设输入焦点 LoginNameEdit.SetFocus; end; exit; end; //检查注册允许值 ifnotLogDataModule.UsersTable.FieldByName (Enabled).AsBooleanthen begin MessageBeep($FFFF); Application.MessageBox(抱歉,您不能进入系统!, 使用权限终止,mb_iconexclamation+mb_OK); ModalResult:=mrCancel; exit; end; //获取注册用户信息 withLogDataModuledo begin LoginUser.UserName:=UsersTable. FieldByName(Name).AsString; LoginUser.UserFullName:=UsersTable. FieldByName(Fullname).AsString; LoginUser.UserGroup:=UsersTable. FieldByName(Group).AsInteger; End; ModalResult:=mrOK; //关闭表,清除密码 finally LogDataModule.UsersTable.Close; Session.RemovePassword(UserPassword); end; ----14.在Main.pas单元的uses中加入"Addition", 在Login.pas单元的implementation段增加uses语句: uses MD,Addition; ----15.打开过程文件Register.dpr,在uses语句中 加入"Controls",将"Application.run;"改为下列语句,只有注册成功时才启动系统,同 时释放注册窗体,以确保安全和减少内存占用。 ifLoginDialogForm.ShowModal=mrOKthen begin LoginDialogForm.Free; Application.Run; end; ----16.编译、运行。注册窗口见图2,输入用户名和 密码后点"注册"按钮。 ----如果注册信息有误,系统出现提示框,允许重新注 册,见图3。若三次尝试均不成功,注册窗口将保护性关闭。 ----访问权已被管理员终止的用户(Enabled的值为False), 例如用户User1以口令CCCCCC注册至用户组1,系统拒绝进入,见图4。 ----注册成功后将启动系统主程序。例如用户Supervisor 以口令AAAAAA注册,见图5。 ----上述方案具有以下特点: ----1.Supervisor用户具有至高无上的权利,由系 统创建,不能删除,仅Password和Fullname字段的值允许自行修改。主要负责系统维护和用 户帐户管理等工作,是系统的永久性特权用户。 ----2.确保用户帐户表Users.DB的安全致关重要, 本方案采用了较为可靠的关键性技术,就是注册过程(见步骤13)中"try…finally…end" 结构的应用。仅当用户按下"注册"按钮时,注册模块转送表Users.DB的密码并将其打开,以 处理注册信息。而无论成功与否,在finally部分都能及时关闭表Users.DB,并立即清除内 存中的密码。 ----3.用户帐户管理模块设在主程序中,完成表Users.DB 的维护功能,包括建立用户帐户和用户组,增、删用户,分配访问权限等。只有Supervisor或 其授权用户才可进入。 ----4.组帐户管理:用户按不同级别分组,再按组进 行权限分配,以简化管理。如系统可根据登录用户所属的用户组,十分方便地屏蔽相应菜单 项,以达到限制用户使用权限的目的。对用户群大的系统,此项技术的优越性尤为显著。 ----5.默认帐户限制:建立用户帐户时,系统默认其Group=3, 仅具备浏览有限信息之权限,不致因管理员一时疏忽使新建用户越权使用,危及系统安全。 ----6.单独帐户限制:用户注册时,必须提供完整的 个人有效信息才能进入系统。 ----7.注册允许限制:管理员可随时取消或恢复单 个用户、用户组甚至系统所有用户(Supervisor除外)的注册权限,只需设置注册允许字段Enabled 的值为False或True。 ----8.非法入侵限制:三次注册尝试不成功便保护 性关闭注册窗口,以防非法非法入侵者无限制尝试。 ----本文介绍了应用软件注册安全性问题的综合解决 方案,容易实现,便于扩充--如增加注册时间限制和记帐收费功能等,可建立较完善的注册 安全机制,适合大型商用软件开发。 155 [电脑技术]使用?和*两个通配符迅速批量(搜索)查找文件 [聊天工具]快速又高效 用Email免费发送网络传真__天极Yesky[常用软件]网管工具 用OH协助服务器进行安全监控 [常用软件]留住精彩 用“数码故事”制作DVD光碟[常用软件]小块头有大智慧 用Nero轻松设计个性化光盘 [常用软件]技高一筹 用Winamp播放影碟[VB.NET程序]用 VB 实现表单的自动提交 [VB.NET程序]用 VB 打开任意盘(硬盘/U盘/光盘)的文件.[VB.NET程序]用 VB 创建MS OFFICE的 COM 加载项 [VB.NET程序]如 何 用 API 播 放 CD
ModalResult:=mrNone; try Session.AddPassword(UserPassword); LogDataModule.UsersTable.Open; //注册信息处理 ifnotLogDataModule.UsersTable.FindKey ([LoginNameEdit.Text,PasswordEdit.Text])then begin //处理注册次数 dec(CountDown); ifCountDown<=0thenModalResult:=mrCancelelse begin MessageBeep($FFFF); Application.MessageBox(请您重试一次!, 无效注册信息,mb_iconstop+mb_OK); //重设输入焦点 LoginNameEdit.SetFocus; end; exit; end; //检查注册允许值 ifnotLogDataModule.UsersTable.FieldByName (Enabled).AsBooleanthen begin MessageBeep($FFFF); Application.MessageBox(抱歉,您不能进入系统!, 使用权限终止,mb_iconexclamation+mb_OK); ModalResult:=mrCancel; exit; end; //获取注册用户信息 withLogDataModuledo begin LoginUser.UserName:=UsersTable. FieldByName(Name).AsString; LoginUser.UserFullName:=UsersTable. FieldByName(Fullname).AsString; LoginUser.UserGroup:=UsersTable. FieldByName(Group).AsInteger; End; ModalResult:=mrOK; //关闭表,清除密码 finally LogDataModule.UsersTable.Close; Session.RemovePassword(UserPassword); end;
----14.在Main.pas单元的uses中加入"Addition", 在Login.pas单元的implementation段增加uses语句: uses MD,Addition; ----15.打开过程文件Register.dpr,在uses语句中 加入"Controls",将"Application.run;"改为下列语句,只有注册成功时才启动系统,同 时释放注册窗体,以确保安全和减少内存占用。 ifLoginDialogForm.ShowModal=mrOKthen begin LoginDialogForm.Free; Application.Run; end; ----16.编译、运行。注册窗口见图2,输入用户名和 密码后点"注册"按钮。 ----如果注册信息有误,系统出现提示框,允许重新注 册,见图3。若三次尝试均不成功,注册窗口将保护性关闭。 ----访问权已被管理员终止的用户(Enabled的值为False), 例如用户User1以口令CCCCCC注册至用户组1,系统拒绝进入,见图4。 ----注册成功后将启动系统主程序。例如用户Supervisor 以口令AAAAAA注册,见图5。 ----上述方案具有以下特点: ----1.Supervisor用户具有至高无上的权利,由系 统创建,不能删除,仅Password和Fullname字段的值允许自行修改。主要负责系统维护和用 户帐户管理等工作,是系统的永久性特权用户。 ----2.确保用户帐户表Users.DB的安全致关重要, 本方案采用了较为可靠的关键性技术,就是注册过程(见步骤13)中"try…finally…end" 结构的应用。仅当用户按下"注册"按钮时,注册模块转送表Users.DB的密码并将其打开,以 处理注册信息。而无论成功与否,在finally部分都能及时关闭表Users.DB,并立即清除内 存中的密码。 ----3.用户帐户管理模块设在主程序中,完成表Users.DB 的维护功能,包括建立用户帐户和用户组,增、删用户,分配访问权限等。只有Supervisor或 其授权用户才可进入。 ----4.组帐户管理:用户按不同级别分组,再按组进 行权限分配,以简化管理。如系统可根据登录用户所属的用户组,十分方便地屏蔽相应菜单 项,以达到限制用户使用权限的目的。对用户群大的系统,此项技术的优越性尤为显著。 ----5.默认帐户限制:建立用户帐户时,系统默认其Group=3, 仅具备浏览有限信息之权限,不致因管理员一时疏忽使新建用户越权使用,危及系统安全。 ----6.单独帐户限制:用户注册时,必须提供完整的 个人有效信息才能进入系统。 ----7.注册允许限制:管理员可随时取消或恢复单 个用户、用户组甚至系统所有用户(Supervisor除外)的注册权限,只需设置注册允许字段Enabled 的值为False或True。 ----8.非法入侵限制:三次注册尝试不成功便保护 性关闭注册窗口,以防非法非法入侵者无限制尝试。 ----本文介绍了应用软件注册安全性问题的综合解决 方案,容易实现,便于扩充--如增加注册时间限制和记帐收费功能等,可建立较完善的注册 安全机制,适合大型商用软件开发。 155 [电脑技术]使用?和*两个通配符迅速批量(搜索)查找文件 [聊天工具]快速又高效 用Email免费发送网络传真__天极Yesky[常用软件]网管工具 用OH协助服务器进行安全监控 [常用软件]留住精彩 用“数码故事”制作DVD光碟[常用软件]小块头有大智慧 用Nero轻松设计个性化光盘 [常用软件]技高一筹 用Winamp播放影碟[VB.NET程序]用 VB 实现表单的自动提交 [VB.NET程序]用 VB 打开任意盘(硬盘/U盘/光盘)的文件.[VB.NET程序]用 VB 创建MS OFFICE的 COM 加载项 [VB.NET程序]如 何 用 API 播 放 CD
uses MD,Addition;
----15.打开过程文件Register.dpr,在uses语句中 加入"Controls",将"Application.run;"改为下列语句,只有注册成功时才启动系统,同 时释放注册窗体,以确保安全和减少内存占用。 ifLoginDialogForm.ShowModal=mrOKthen begin LoginDialogForm.Free; Application.Run; end; ----16.编译、运行。注册窗口见图2,输入用户名和 密码后点"注册"按钮。 ----如果注册信息有误,系统出现提示框,允许重新注 册,见图3。若三次尝试均不成功,注册窗口将保护性关闭。 ----访问权已被管理员终止的用户(Enabled的值为False), 例如用户User1以口令CCCCCC注册至用户组1,系统拒绝进入,见图4。 ----注册成功后将启动系统主程序。例如用户Supervisor 以口令AAAAAA注册,见图5。 ----上述方案具有以下特点: ----1.Supervisor用户具有至高无上的权利,由系 统创建,不能删除,仅Password和Fullname字段的值允许自行修改。主要负责系统维护和用 户帐户管理等工作,是系统的永久性特权用户。 ----2.确保用户帐户表Users.DB的安全致关重要, 本方案采用了较为可靠的关键性技术,就是注册过程(见步骤13)中"try…finally…end" 结构的应用。仅当用户按下"注册"按钮时,注册模块转送表Users.DB的密码并将其打开,以 处理注册信息。而无论成功与否,在finally部分都能及时关闭表Users.DB,并立即清除内 存中的密码。 ----3.用户帐户管理模块设在主程序中,完成表Users.DB 的维护功能,包括建立用户帐户和用户组,增、删用户,分配访问权限等。只有Supervisor或 其授权用户才可进入。 ----4.组帐户管理:用户按不同级别分组,再按组进 行权限分配,以简化管理。如系统可根据登录用户所属的用户组,十分方便地屏蔽相应菜单 项,以达到限制用户使用权限的目的。对用户群大的系统,此项技术的优越性尤为显著。 ----5.默认帐户限制:建立用户帐户时,系统默认其Group=3, 仅具备浏览有限信息之权限,不致因管理员一时疏忽使新建用户越权使用,危及系统安全。 ----6.单独帐户限制:用户注册时,必须提供完整的 个人有效信息才能进入系统。 ----7.注册允许限制:管理员可随时取消或恢复单 个用户、用户组甚至系统所有用户(Supervisor除外)的注册权限,只需设置注册允许字段Enabled 的值为False或True。 ----8.非法入侵限制:三次注册尝试不成功便保护 性关闭注册窗口,以防非法非法入侵者无限制尝试。 ----本文介绍了应用软件注册安全性问题的综合解决 方案,容易实现,便于扩充--如增加注册时间限制和记帐收费功能等,可建立较完善的注册 安全机制,适合大型商用软件开发。 155 [电脑技术]使用?和*两个通配符迅速批量(搜索)查找文件 [聊天工具]快速又高效 用Email免费发送网络传真__天极Yesky[常用软件]网管工具 用OH协助服务器进行安全监控 [常用软件]留住精彩 用“数码故事”制作DVD光碟[常用软件]小块头有大智慧 用Nero轻松设计个性化光盘 [常用软件]技高一筹 用Winamp播放影碟[VB.NET程序]用 VB 实现表单的自动提交 [VB.NET程序]用 VB 打开任意盘(硬盘/U盘/光盘)的文件.[VB.NET程序]用 VB 创建MS OFFICE的 COM 加载项 [VB.NET程序]如 何 用 API 播 放 CD
ifLoginDialogForm.ShowModal=mrOKthen begin LoginDialogForm.Free; Application.Run; end;
----16.编译、运行。注册窗口见图2,输入用户名和 密码后点"注册"按钮。 ----如果注册信息有误,系统出现提示框,允许重新注 册,见图3。若三次尝试均不成功,注册窗口将保护性关闭。 ----访问权已被管理员终止的用户(Enabled的值为False), 例如用户User1以口令CCCCCC注册至用户组1,系统拒绝进入,见图4。 ----注册成功后将启动系统主程序。例如用户Supervisor 以口令AAAAAA注册,见图5。 ----上述方案具有以下特点: ----1.Supervisor用户具有至高无上的权利,由系 统创建,不能删除,仅Password和Fullname字段的值允许自行修改。主要负责系统维护和用 户帐户管理等工作,是系统的永久性特权用户。 ----2.确保用户帐户表Users.DB的安全致关重要, 本方案采用了较为可靠的关键性技术,就是注册过程(见步骤13)中"try…finally…end" 结构的应用。仅当用户按下"注册"按钮时,注册模块转送表Users.DB的密码并将其打开,以 处理注册信息。而无论成功与否,在finally部分都能及时关闭表Users.DB,并立即清除内 存中的密码。 ----3.用户帐户管理模块设在主程序中,完成表Users.DB 的维护功能,包括建立用户帐户和用户组,增、删用户,分配访问权限等。只有Supervisor或 其授权用户才可进入。 ----4.组帐户管理:用户按不同级别分组,再按组进 行权限分配,以简化管理。如系统可根据登录用户所属的用户组,十分方便地屏蔽相应菜单 项,以达到限制用户使用权限的目的。对用户群大的系统,此项技术的优越性尤为显著。 ----5.默认帐户限制:建立用户帐户时,系统默认其Group=3, 仅具备浏览有限信息之权限,不致因管理员一时疏忽使新建用户越权使用,危及系统安全。 ----6.单独帐户限制:用户注册时,必须提供完整的 个人有效信息才能进入系统。 ----7.注册允许限制:管理员可随时取消或恢复单 个用户、用户组甚至系统所有用户(Supervisor除外)的注册权限,只需设置注册允许字段Enabled 的值为False或True。 ----8.非法入侵限制:三次注册尝试不成功便保护 性关闭注册窗口,以防非法非法入侵者无限制尝试。 ----本文介绍了应用软件注册安全性问题的综合解决 方案,容易实现,便于扩充--如增加注册时间限制和记帐收费功能等,可建立较完善的注册 安全机制,适合大型商用软件开发。 155 [电脑技术]使用?和*两个通配符迅速批量(搜索)查找文件 [聊天工具]快速又高效 用Email免费发送网络传真__天极Yesky[常用软件]网管工具 用OH协助服务器进行安全监控 [常用软件]留住精彩 用“数码故事”制作DVD光碟[常用软件]小块头有大智慧 用Nero轻松设计个性化光盘 [常用软件]技高一筹 用Winamp播放影碟[VB.NET程序]用 VB 实现表单的自动提交 [VB.NET程序]用 VB 打开任意盘(硬盘/U盘/光盘)的文件.[VB.NET程序]用 VB 创建MS OFFICE的 COM 加载项 [VB.NET程序]如 何 用 API 播 放 CD
----如果注册信息有误,系统出现提示框,允许重新注 册,见图3。若三次尝试均不成功,注册窗口将保护性关闭。 ----访问权已被管理员终止的用户(Enabled的值为False), 例如用户User1以口令CCCCCC注册至用户组1,系统拒绝进入,见图4。 ----注册成功后将启动系统主程序。例如用户Supervisor 以口令AAAAAA注册,见图5。 ----上述方案具有以下特点: ----1.Supervisor用户具有至高无上的权利,由系 统创建,不能删除,仅Password和Fullname字段的值允许自行修改。主要负责系统维护和用 户帐户管理等工作,是系统的永久性特权用户。 ----2.确保用户帐户表Users.DB的安全致关重要, 本方案采用了较为可靠的关键性技术,就是注册过程(见步骤13)中"try…finally…end" 结构的应用。仅当用户按下"注册"按钮时,注册模块转送表Users.DB的密码并将其打开,以 处理注册信息。而无论成功与否,在finally部分都能及时关闭表Users.DB,并立即清除内 存中的密码。 ----3.用户帐户管理模块设在主程序中,完成表Users.DB 的维护功能,包括建立用户帐户和用户组,增、删用户,分配访问权限等。只有Supervisor或 其授权用户才可进入。 ----4.组帐户管理:用户按不同级别分组,再按组进 行权限分配,以简化管理。如系统可根据登录用户所属的用户组,十分方便地屏蔽相应菜单 项,以达到限制用户使用权限的目的。对用户群大的系统,此项技术的优越性尤为显著。 ----5.默认帐户限制:建立用户帐户时,系统默认其Group=3, 仅具备浏览有限信息之权限,不致因管理员一时疏忽使新建用户越权使用,危及系统安全。 ----6.单独帐户限制:用户注册时,必须提供完整的 个人有效信息才能进入系统。 ----7.注册允许限制:管理员可随时取消或恢复单 个用户、用户组甚至系统所有用户(Supervisor除外)的注册权限,只需设置注册允许字段Enabled 的值为False或True。 ----8.非法入侵限制:三次注册尝试不成功便保护 性关闭注册窗口,以防非法非法入侵者无限制尝试。 ----本文介绍了应用软件注册安全性问题的综合解决 方案,容易实现,便于扩充--如增加注册时间限制和记帐收费功能等,可建立较完善的注册 安全机制,适合大型商用软件开发。 155 [电脑技术]使用?和*两个通配符迅速批量(搜索)查找文件 [聊天工具]快速又高效 用Email免费发送网络传真__天极Yesky[常用软件]网管工具 用OH协助服务器进行安全监控 [常用软件]留住精彩 用“数码故事”制作DVD光碟[常用软件]小块头有大智慧 用Nero轻松设计个性化光盘 [常用软件]技高一筹 用Winamp播放影碟[VB.NET程序]用 VB 实现表单的自动提交 [VB.NET程序]用 VB 打开任意盘(硬盘/U盘/光盘)的文件.[VB.NET程序]用 VB 创建MS OFFICE的 COM 加载项 [VB.NET程序]如 何 用 API 播 放 CD
----访问权已被管理员终止的用户(Enabled的值为False), 例如用户User1以口令CCCCCC注册至用户组1,系统拒绝进入,见图4。 ----注册成功后将启动系统主程序。例如用户Supervisor 以口令AAAAAA注册,见图5。 ----上述方案具有以下特点: ----1.Supervisor用户具有至高无上的权利,由系 统创建,不能删除,仅Password和Fullname字段的值允许自行修改。主要负责系统维护和用 户帐户管理等工作,是系统的永久性特权用户。 ----2.确保用户帐户表Users.DB的安全致关重要, 本方案采用了较为可靠的关键性技术,就是注册过程(见步骤13)中"try…finally…end" 结构的应用。仅当用户按下"注册"按钮时,注册模块转送表Users.DB的密码并将其打开,以 处理注册信息。而无论成功与否,在finally部分都能及时关闭表Users.DB,并立即清除内 存中的密码。 ----3.用户帐户管理模块设在主程序中,完成表Users.DB 的维护功能,包括建立用户帐户和用户组,增、删用户,分配访问权限等。只有Supervisor或 其授权用户才可进入。 ----4.组帐户管理:用户按不同级别分组,再按组进 行权限分配,以简化管理。如系统可根据登录用户所属的用户组,十分方便地屏蔽相应菜单 项,以达到限制用户使用权限的目的。对用户群大的系统,此项技术的优越性尤为显著。 ----5.默认帐户限制:建立用户帐户时,系统默认其Group=3, 仅具备浏览有限信息之权限,不致因管理员一时疏忽使新建用户越权使用,危及系统安全。 ----6.单独帐户限制:用户注册时,必须提供完整的 个人有效信息才能进入系统。 ----7.注册允许限制:管理员可随时取消或恢复单 个用户、用户组甚至系统所有用户(Supervisor除外)的注册权限,只需设置注册允许字段Enabled 的值为False或True。 ----8.非法入侵限制:三次注册尝试不成功便保护 性关闭注册窗口,以防非法非法入侵者无限制尝试。 ----本文介绍了应用软件注册安全性问题的综合解决 方案,容易实现,便于扩充--如增加注册时间限制和记帐收费功能等,可建立较完善的注册 安全机制,适合大型商用软件开发。 155 [电脑技术]使用?和*两个通配符迅速批量(搜索)查找文件 [聊天工具]快速又高效 用Email免费发送网络传真__天极Yesky[常用软件]网管工具 用OH协助服务器进行安全监控 [常用软件]留住精彩 用“数码故事”制作DVD光碟[常用软件]小块头有大智慧 用Nero轻松设计个性化光盘 [常用软件]技高一筹 用Winamp播放影碟[VB.NET程序]用 VB 实现表单的自动提交 [VB.NET程序]用 VB 打开任意盘(硬盘/U盘/光盘)的文件.[VB.NET程序]用 VB 创建MS OFFICE的 COM 加载项 [VB.NET程序]如 何 用 API 播 放 CD
----注册成功后将启动系统主程序。例如用户Supervisor 以口令AAAAAA注册,见图5。 ----上述方案具有以下特点: ----1.Supervisor用户具有至高无上的权利,由系 统创建,不能删除,仅Password和Fullname字段的值允许自行修改。主要负责系统维护和用 户帐户管理等工作,是系统的永久性特权用户。 ----2.确保用户帐户表Users.DB的安全致关重要, 本方案采用了较为可靠的关键性技术,就是注册过程(见步骤13)中"try…finally…end" 结构的应用。仅当用户按下"注册"按钮时,注册模块转送表Users.DB的密码并将其打开,以 处理注册信息。而无论成功与否,在finally部分都能及时关闭表Users.DB,并立即清除内 存中的密码。 ----3.用户帐户管理模块设在主程序中,完成表Users.DB 的维护功能,包括建立用户帐户和用户组,增、删用户,分配访问权限等。只有Supervisor或 其授权用户才可进入。 ----4.组帐户管理:用户按不同级别分组,再按组进 行权限分配,以简化管理。如系统可根据登录用户所属的用户组,十分方便地屏蔽相应菜单 项,以达到限制用户使用权限的目的。对用户群大的系统,此项技术的优越性尤为显著。 ----5.默认帐户限制:建立用户帐户时,系统默认其Group=3, 仅具备浏览有限信息之权限,不致因管理员一时疏忽使新建用户越权使用,危及系统安全。 ----6.单独帐户限制:用户注册时,必须提供完整的 个人有效信息才能进入系统。 ----7.注册允许限制:管理员可随时取消或恢复单 个用户、用户组甚至系统所有用户(Supervisor除外)的注册权限,只需设置注册允许字段Enabled 的值为False或True。 ----8.非法入侵限制:三次注册尝试不成功便保护 性关闭注册窗口,以防非法非法入侵者无限制尝试。 ----本文介绍了应用软件注册安全性问题的综合解决 方案,容易实现,便于扩充--如增加注册时间限制和记帐收费功能等,可建立较完善的注册 安全机制,适合大型商用软件开发。 155 [电脑技术]使用?和*两个通配符迅速批量(搜索)查找文件 [聊天工具]快速又高效 用Email免费发送网络传真__天极Yesky[常用软件]网管工具 用OH协助服务器进行安全监控 [常用软件]留住精彩 用“数码故事”制作DVD光碟[常用软件]小块头有大智慧 用Nero轻松设计个性化光盘 [常用软件]技高一筹 用Winamp播放影碟[VB.NET程序]用 VB 实现表单的自动提交 [VB.NET程序]用 VB 打开任意盘(硬盘/U盘/光盘)的文件.[VB.NET程序]用 VB 创建MS OFFICE的 COM 加载项 [VB.NET程序]如 何 用 API 播 放 CD
----上述方案具有以下特点: ----1.Supervisor用户具有至高无上的权利,由系 统创建,不能删除,仅Password和Fullname字段的值允许自行修改。主要负责系统维护和用 户帐户管理等工作,是系统的永久性特权用户。 ----2.确保用户帐户表Users.DB的安全致关重要, 本方案采用了较为可靠的关键性技术,就是注册过程(见步骤13)中"try…finally…end" 结构的应用。仅当用户按下"注册"按钮时,注册模块转送表Users.DB的密码并将其打开,以 处理注册信息。而无论成功与否,在finally部分都能及时关闭表Users.DB,并立即清除内 存中的密码。 ----3.用户帐户管理模块设在主程序中,完成表Users.DB 的维护功能,包括建立用户帐户和用户组,增、删用户,分配访问权限等。只有Supervisor或 其授权用户才可进入。 ----4.组帐户管理:用户按不同级别分组,再按组进 行权限分配,以简化管理。如系统可根据登录用户所属的用户组,十分方便地屏蔽相应菜单 项,以达到限制用户使用权限的目的。对用户群大的系统,此项技术的优越性尤为显著。 ----5.默认帐户限制:建立用户帐户时,系统默认其Group=3, 仅具备浏览有限信息之权限,不致因管理员一时疏忽使新建用户越权使用,危及系统安全。 ----6.单独帐户限制:用户注册时,必须提供完整的 个人有效信息才能进入系统。 ----7.注册允许限制:管理员可随时取消或恢复单 个用户、用户组甚至系统所有用户(Supervisor除外)的注册权限,只需设置注册允许字段Enabled 的值为False或True。 ----8.非法入侵限制:三次注册尝试不成功便保护 性关闭注册窗口,以防非法非法入侵者无限制尝试。 ----本文介绍了应用软件注册安全性问题的综合解决 方案,容易实现,便于扩充--如增加注册时间限制和记帐收费功能等,可建立较完善的注册 安全机制,适合大型商用软件开发。 155 [电脑技术]使用?和*两个通配符迅速批量(搜索)查找文件 [聊天工具]快速又高效 用Email免费发送网络传真__天极Yesky[常用软件]网管工具 用OH协助服务器进行安全监控 [常用软件]留住精彩 用“数码故事”制作DVD光碟[常用软件]小块头有大智慧 用Nero轻松设计个性化光盘 [常用软件]技高一筹 用Winamp播放影碟[VB.NET程序]用 VB 实现表单的自动提交 [VB.NET程序]用 VB 打开任意盘(硬盘/U盘/光盘)的文件.[VB.NET程序]用 VB 创建MS OFFICE的 COM 加载项 [VB.NET程序]如 何 用 API 播 放 CD
----1.Supervisor用户具有至高无上的权利,由系 统创建,不能删除,仅Password和Fullname字段的值允许自行修改。主要负责系统维护和用 户帐户管理等工作,是系统的永久性特权用户。 ----2.确保用户帐户表Users.DB的安全致关重要, 本方案采用了较为可靠的关键性技术,就是注册过程(见步骤13)中"try…finally…end" 结构的应用。仅当用户按下"注册"按钮时,注册模块转送表Users.DB的密码并将其打开,以 处理注册信息。而无论成功与否,在finally部分都能及时关闭表Users.DB,并立即清除内 存中的密码。 ----3.用户帐户管理模块设在主程序中,完成表Users.DB 的维护功能,包括建立用户帐户和用户组,增、删用户,分配访问权限等。只有Supervisor或 其授权用户才可进入。 ----4.组帐户管理:用户按不同级别分组,再按组进 行权限分配,以简化管理。如系统可根据登录用户所属的用户组,十分方便地屏蔽相应菜单 项,以达到限制用户使用权限的目的。对用户群大的系统,此项技术的优越性尤为显著。 ----5.默认帐户限制:建立用户帐户时,系统默认其Group=3, 仅具备浏览有限信息之权限,不致因管理员一时疏忽使新建用户越权使用,危及系统安全。 ----6.单独帐户限制:用户注册时,必须提供完整的 个人有效信息才能进入系统。 ----7.注册允许限制:管理员可随时取消或恢复单 个用户、用户组甚至系统所有用户(Supervisor除外)的注册权限,只需设置注册允许字段Enabled 的值为False或True。 ----8.非法入侵限制:三次注册尝试不成功便保护 性关闭注册窗口,以防非法非法入侵者无限制尝试。 ----本文介绍了应用软件注册安全性问题的综合解决 方案,容易实现,便于扩充--如增加注册时间限制和记帐收费功能等,可建立较完善的注册 安全机制,适合大型商用软件开发。 155 [电脑技术]使用?和*两个通配符迅速批量(搜索)查找文件 [聊天工具]快速又高效 用Email免费发送网络传真__天极Yesky[常用软件]网管工具 用OH协助服务器进行安全监控 [常用软件]留住精彩 用“数码故事”制作DVD光碟[常用软件]小块头有大智慧 用Nero轻松设计个性化光盘 [常用软件]技高一筹 用Winamp播放影碟[VB.NET程序]用 VB 实现表单的自动提交 [VB.NET程序]用 VB 打开任意盘(硬盘/U盘/光盘)的文件.[VB.NET程序]用 VB 创建MS OFFICE的 COM 加载项 [VB.NET程序]如 何 用 API 播 放 CD
----2.确保用户帐户表Users.DB的安全致关重要, 本方案采用了较为可靠的关键性技术,就是注册过程(见步骤13)中"try…finally…end" 结构的应用。仅当用户按下"注册"按钮时,注册模块转送表Users.DB的密码并将其打开,以 处理注册信息。而无论成功与否,在finally部分都能及时关闭表Users.DB,并立即清除内 存中的密码。 ----3.用户帐户管理模块设在主程序中,完成表Users.DB 的维护功能,包括建立用户帐户和用户组,增、删用户,分配访问权限等。只有Supervisor或 其授权用户才可进入。 ----4.组帐户管理:用户按不同级别分组,再按组进 行权限分配,以简化管理。如系统可根据登录用户所属的用户组,十分方便地屏蔽相应菜单 项,以达到限制用户使用权限的目的。对用户群大的系统,此项技术的优越性尤为显著。 ----5.默认帐户限制:建立用户帐户时,系统默认其Group=3, 仅具备浏览有限信息之权限,不致因管理员一时疏忽使新建用户越权使用,危及系统安全。 ----6.单独帐户限制:用户注册时,必须提供完整的 个人有效信息才能进入系统。 ----7.注册允许限制:管理员可随时取消或恢复单 个用户、用户组甚至系统所有用户(Supervisor除外)的注册权限,只需设置注册允许字段Enabled 的值为False或True。 ----8.非法入侵限制:三次注册尝试不成功便保护 性关闭注册窗口,以防非法非法入侵者无限制尝试。 ----本文介绍了应用软件注册安全性问题的综合解决 方案,容易实现,便于扩充--如增加注册时间限制和记帐收费功能等,可建立较完善的注册 安全机制,适合大型商用软件开发。 155 [电脑技术]使用?和*两个通配符迅速批量(搜索)查找文件 [聊天工具]快速又高效 用Email免费发送网络传真__天极Yesky[常用软件]网管工具 用OH协助服务器进行安全监控 [常用软件]留住精彩 用“数码故事”制作DVD光碟[常用软件]小块头有大智慧 用Nero轻松设计个性化光盘 [常用软件]技高一筹 用Winamp播放影碟[VB.NET程序]用 VB 实现表单的自动提交 [VB.NET程序]用 VB 打开任意盘(硬盘/U盘/光盘)的文件.[VB.NET程序]用 VB 创建MS OFFICE的 COM 加载项 [VB.NET程序]如 何 用 API 播 放 CD
----3.用户帐户管理模块设在主程序中,完成表Users.DB 的维护功能,包括建立用户帐户和用户组,增、删用户,分配访问权限等。只有Supervisor或 其授权用户才可进入。 ----4.组帐户管理:用户按不同级别分组,再按组进 行权限分配,以简化管理。如系统可根据登录用户所属的用户组,十分方便地屏蔽相应菜单 项,以达到限制用户使用权限的目的。对用户群大的系统,此项技术的优越性尤为显著。 ----5.默认帐户限制:建立用户帐户时,系统默认其Group=3, 仅具备浏览有限信息之权限,不致因管理员一时疏忽使新建用户越权使用,危及系统安全。 ----6.单独帐户限制:用户注册时,必须提供完整的 个人有效信息才能进入系统。 ----7.注册允许限制:管理员可随时取消或恢复单 个用户、用户组甚至系统所有用户(Supervisor除外)的注册权限,只需设置注册允许字段Enabled 的值为False或True。 ----8.非法入侵限制:三次注册尝试不成功便保护 性关闭注册窗口,以防非法非法入侵者无限制尝试。 ----本文介绍了应用软件注册安全性问题的综合解决 方案,容易实现,便于扩充--如增加注册时间限制和记帐收费功能等,可建立较完善的注册 安全机制,适合大型商用软件开发。 155 [电脑技术]使用?和*两个通配符迅速批量(搜索)查找文件 [聊天工具]快速又高效 用Email免费发送网络传真__天极Yesky[常用软件]网管工具 用OH协助服务器进行安全监控 [常用软件]留住精彩 用“数码故事”制作DVD光碟[常用软件]小块头有大智慧 用Nero轻松设计个性化光盘 [常用软件]技高一筹 用Winamp播放影碟[VB.NET程序]用 VB 实现表单的自动提交 [VB.NET程序]用 VB 打开任意盘(硬盘/U盘/光盘)的文件.[VB.NET程序]用 VB 创建MS OFFICE的 COM 加载项 [VB.NET程序]如 何 用 API 播 放 CD
----4.组帐户管理:用户按不同级别分组,再按组进 行权限分配,以简化管理。如系统可根据登录用户所属的用户组,十分方便地屏蔽相应菜单 项,以达到限制用户使用权限的目的。对用户群大的系统,此项技术的优越性尤为显著。 ----5.默认帐户限制:建立用户帐户时,系统默认其Group=3, 仅具备浏览有限信息之权限,不致因管理员一时疏忽使新建用户越权使用,危及系统安全。 ----6.单独帐户限制:用户注册时,必须提供完整的 个人有效信息才能进入系统。 ----7.注册允许限制:管理员可随时取消或恢复单 个用户、用户组甚至系统所有用户(Supervisor除外)的注册权限,只需设置注册允许字段Enabled 的值为False或True。 ----8.非法入侵限制:三次注册尝试不成功便保护 性关闭注册窗口,以防非法非法入侵者无限制尝试。 ----本文介绍了应用软件注册安全性问题的综合解决 方案,容易实现,便于扩充--如增加注册时间限制和记帐收费功能等,可建立较完善的注册 安全机制,适合大型商用软件开发。 155 [电脑技术]使用?和*两个通配符迅速批量(搜索)查找文件 [聊天工具]快速又高效 用Email免费发送网络传真__天极Yesky[常用软件]网管工具 用OH协助服务器进行安全监控 [常用软件]留住精彩 用“数码故事”制作DVD光碟[常用软件]小块头有大智慧 用Nero轻松设计个性化光盘 [常用软件]技高一筹 用Winamp播放影碟[VB.NET程序]用 VB 实现表单的自动提交 [VB.NET程序]用 VB 打开任意盘(硬盘/U盘/光盘)的文件.[VB.NET程序]用 VB 创建MS OFFICE的 COM 加载项 [VB.NET程序]如 何 用 API 播 放 CD
----5.默认帐户限制:建立用户帐户时,系统默认其Group=3, 仅具备浏览有限信息之权限,不致因管理员一时疏忽使新建用户越权使用,危及系统安全。 ----6.单独帐户限制:用户注册时,必须提供完整的 个人有效信息才能进入系统。 ----7.注册允许限制:管理员可随时取消或恢复单 个用户、用户组甚至系统所有用户(Supervisor除外)的注册权限,只需设置注册允许字段Enabled 的值为False或True。 ----8.非法入侵限制:三次注册尝试不成功便保护 性关闭注册窗口,以防非法非法入侵者无限制尝试。 ----本文介绍了应用软件注册安全性问题的综合解决 方案,容易实现,便于扩充--如增加注册时间限制和记帐收费功能等,可建立较完善的注册 安全机制,适合大型商用软件开发。 155 [电脑技术]使用?和*两个通配符迅速批量(搜索)查找文件 [聊天工具]快速又高效 用Email免费发送网络传真__天极Yesky[常用软件]网管工具 用OH协助服务器进行安全监控 [常用软件]留住精彩 用“数码故事”制作DVD光碟[常用软件]小块头有大智慧 用Nero轻松设计个性化光盘 [常用软件]技高一筹 用Winamp播放影碟[VB.NET程序]用 VB 实现表单的自动提交 [VB.NET程序]用 VB 打开任意盘(硬盘/U盘/光盘)的文件.[VB.NET程序]用 VB 创建MS OFFICE的 COM 加载项 [VB.NET程序]如 何 用 API 播 放 CD
----6.单独帐户限制:用户注册时,必须提供完整的 个人有效信息才能进入系统。 ----7.注册允许限制:管理员可随时取消或恢复单 个用户、用户组甚至系统所有用户(Supervisor除外)的注册权限,只需设置注册允许字段Enabled 的值为False或True。 ----8.非法入侵限制:三次注册尝试不成功便保护 性关闭注册窗口,以防非法非法入侵者无限制尝试。 ----本文介绍了应用软件注册安全性问题的综合解决 方案,容易实现,便于扩充--如增加注册时间限制和记帐收费功能等,可建立较完善的注册 安全机制,适合大型商用软件开发。 155 [电脑技术]使用?和*两个通配符迅速批量(搜索)查找文件 [聊天工具]快速又高效 用Email免费发送网络传真__天极Yesky[常用软件]网管工具 用OH协助服务器进行安全监控 [常用软件]留住精彩 用“数码故事”制作DVD光碟[常用软件]小块头有大智慧 用Nero轻松设计个性化光盘 [常用软件]技高一筹 用Winamp播放影碟[VB.NET程序]用 VB 实现表单的自动提交 [VB.NET程序]用 VB 打开任意盘(硬盘/U盘/光盘)的文件.[VB.NET程序]用 VB 创建MS OFFICE的 COM 加载项 [VB.NET程序]如 何 用 API 播 放 CD
----7.注册允许限制:管理员可随时取消或恢复单 个用户、用户组甚至系统所有用户(Supervisor除外)的注册权限,只需设置注册允许字段Enabled 的值为False或True。 ----8.非法入侵限制:三次注册尝试不成功便保护 性关闭注册窗口,以防非法非法入侵者无限制尝试。 ----本文介绍了应用软件注册安全性问题的综合解决 方案,容易实现,便于扩充--如增加注册时间限制和记帐收费功能等,可建立较完善的注册 安全机制,适合大型商用软件开发。 155 [电脑技术]使用?和*两个通配符迅速批量(搜索)查找文件 [聊天工具]快速又高效 用Email免费发送网络传真__天极Yesky[常用软件]网管工具 用OH协助服务器进行安全监控 [常用软件]留住精彩 用“数码故事”制作DVD光碟[常用软件]小块头有大智慧 用Nero轻松设计个性化光盘 [常用软件]技高一筹 用Winamp播放影碟[VB.NET程序]用 VB 实现表单的自动提交 [VB.NET程序]用 VB 打开任意盘(硬盘/U盘/光盘)的文件.[VB.NET程序]用 VB 创建MS OFFICE的 COM 加载项 [VB.NET程序]如 何 用 API 播 放 CD
----8.非法入侵限制:三次注册尝试不成功便保护 性关闭注册窗口,以防非法非法入侵者无限制尝试。 ----本文介绍了应用软件注册安全性问题的综合解决 方案,容易实现,便于扩充--如增加注册时间限制和记帐收费功能等,可建立较完善的注册 安全机制,适合大型商用软件开发。 155 [电脑技术]使用?和*两个通配符迅速批量(搜索)查找文件 [聊天工具]快速又高效 用Email免费发送网络传真__天极Yesky[常用软件]网管工具 用OH协助服务器进行安全监控 [常用软件]留住精彩 用“数码故事”制作DVD光碟[常用软件]小块头有大智慧 用Nero轻松设计个性化光盘 [常用软件]技高一筹 用Winamp播放影碟[VB.NET程序]用 VB 实现表单的自动提交 [VB.NET程序]用 VB 打开任意盘(硬盘/U盘/光盘)的文件.[VB.NET程序]用 VB 创建MS OFFICE的 COM 加载项 [VB.NET程序]如 何 用 API 播 放 CD
----本文介绍了应用软件注册安全性问题的综合解决 方案,容易实现,便于扩充--如增加注册时间限制和记帐收费功能等,可建立较完善的注册 安全机制,适合大型商用软件开发。 155
Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved. 闵涛 E_mail:admin@mintao.net(欢迎提供学习资源)
鄂公网安备 42011102001154号
站长:MinTao ICP备案号:鄂ICP备11006601号-18