📄 78730.htm
字号:
Label1Caption用户:<br> Label2Caption密码:<br> Edit1NameLoginNameEditText<br> Edit2NamePasswordEditPasswordChar*Text<br> BitBtn1Caption注册(&L)<br> EnabledFalse<br> KindbkOK<br> NameLoginBitBtn<br> BitBtn2Caption取消(&C)<br> EnabledTrue<br> KindbkCancel<br> NameCancelBitBtn</p> </blockquote> </blockquote> <p> 10.选择File/New命令,从NewItems 的New页中选择Unit项建一个无窗体单元Addition.pas存入Login目录,在其interface段输入下列语句:</p> <blockquote> <blockquote> <p> usesClasses,Forms,Sysutils;<br> type<br> TApplicationUser=class(TComponent)<br> private<br> FUserName:string;<br> FFullName:string;<br> FUserGroup:Integer;<br> public<br> propertyUserName:stringreadFUserNamewrite FUserName;<br> propertyUserFullName:stringreadFFullName writeFFullName;<br> propertyUserGroup:IntegerreadFUserGroup writeFUserGroup;<br> end;<br> var<br> LoginUser:TApplicationUser;</p> </blockquote> </blockquote> <p>在implementation段加入下列语句:</p> <blockquote> <blockquote> <p> initialization<br> LoginUser:=TapplicationUser.Create(Application);</p> </blockquote> </blockquote> <p> 11.创建注册窗体(LoginDialogForm) 的OnCreate事件处理程序。在private段中声明CountDown为Integer变量,作为计数器,并将下述语句插入begin与end之间:</p> <blockquote> <blockquote> <p> CountDown:=3;//允许尝试注册3次</p> </blockquote> </blockquote> <p> 12.建立用户名输入框(LoginNameEdit) 的OnChange事件处理程序,使窗体LoginDialogForm创建时注册按钮为灰色,用户输入登录名后才可用。不难实现,源代码略。</p> <p> 13.创建注册过程。双击注册按 钮(LoginBitBtn),在begin和end之间输入其OnClick事件处理程序代码:</p> <blockquote> <blockquote> <p> ModalResult:=mrNone;<br> try<br> Session.AddPassword('UserPassword');<br> LogDataModule.UsersTable.Open;<br> //注册信息处理<br> ifnotLogDataModule.UsersTable.FindKey<br> ([LoginNameEdit.Text,PasswordEdit.Text]) then<br> begin<br> //处理注册次数<br> dec(CountDown);<br> ifCountDown=0thenModalResult:=mrCancel else<br> begin<br> MessageBeep($FFFF);<br> Application.MessageBox('请您重试一次!','无效注册信息',mb_iconstop+mb_OK);<br> //重设输入焦点<br> LoginNameEdit.SetFocus;<br> end;<br> exit;<br> end;<br> //检查注册允许值<br> ifnotLogDataModule.UsersTable.FieldByName('Enabled').AsBoolean then<br> begin<br> MessageBeep($FFFF);<br> Application.MessageBox('抱歉,您不能进入系统!','使用权限终止',mb_iconexclamation+mb_OK);<br> ModalResult:=mrCancel;<br> exit;<br> end;<br> //获取注册用户信息<br> withLogDataModuledo<br> begin<br> LoginUser.UserName:=UsersTable.<br> FieldByName('Name').AsString;<br> LoginUser.UserFullName:=UsersTable.<br> FieldByName('Fullname').AsString;<br> LoginUser.UserGroup:=UsersTable.<br> FieldByName('Group').AsInteger;<br> End;<br> ModalResult:=mrOK;<br> //关闭表,清除密码<br> finally<br> LogDataModule.UsersTable.Close;<br> Session.RemovePassword('UserPassword');<br> end;</p> </blockquote> </blockquote> <p> 14.在Main.pas单元的uses中 加入Addition,在Login.pas单元的implementation段增加uses 语句:</p> <blockquote> <blockquote> <p> usesMD,Addition;</p> </blockquote> </blockquote> <p> 15.打开过程文件Register.dpr, 在uses语句中加入Controls,将Application.run;改为下列语句,只有注册成功时才启动系统,同时释放注册窗体,以确保安 全和减少内存占用。</p> <blockquote> <blockquote> <p> ifLoginDialogForm.ShowModal=mrOKthen<br> begin<br> LoginDialogForm.Free;<br> Application.Run;<br> end;</p> </blockquote> </blockquote> <p> 16.编译、运行。注册窗口见图2, 输入用户名和密码后点注册按钮。</p> <p> 如果注册信息有误,系统出现提 示框,允许重新注册,见图3。若三次尝试均不成功,注册窗口将保护性关闭。 </p> <p> 访问权已被管理员终止的用户(Enabled 的值为False),例如用户User1以口令CCCCCC注册至用户组1,系统拒绝进入。</p> <p> 注册成功后将启动系统主程序。 例如用户Supervisor以口令AAAAAA注册。</p> <p> 上述方案具有以下特点:<br> 1.Supervisor用户具有至高无 上的权利,由系统创建,不能删除,仅Password和Fullname字段的值允许自行修改。主要负责系统维护和用户帐户管理等工作,是系统的永久性特权用户。</p> <p> 2.确保用户帐户表Users.DB的 安全致关重要,本方案采用了较为可靠的关键性技术,就是注册过程(见步 骤13)中try…finally…end结构的应用。仅当用户按下注册按钮时,注册模块转送表Users.DB的密码并将其打开,以处理 注册信息。而无论成功与否,在finally部分都能及时关闭表Users.DB,并立即清除内存中的密码。</p> <p> 3.用户帐户管理模块设在主程序中,完成表Users.DB的维护功能,包括建立用户帐户和用户组,增、删用户,分配访问权限等。只有Supervisor或其授权用户才可进入。</p> <p> 4.组帐户管理:用户按不同级 别分组,再按组进行权限分配,以简化管理。如系统可根据登录用户所属的用户组,十分方便地屏蔽相应菜单项,以达到限制用户使用权限的目的。对用户群大的系统,此项技术的优越性尤为显著。</p> <p> 5.默认帐户限制:建立用户帐户时,系统默认其Group=3,仅具备浏览有限信息之权限,不致因管理员一时疏忽使新建用户越权使用,危及系统安全。</p> <p> 6.单独帐户限制:用户注册时,必须提供完整的个人有效信息才能进入系统。</p> <p> 7.注册允许限制:管理员可随时取消或恢复单个用户、用户组甚至系统所有用户(Supervisor除外)的注册权限,只需设置注册允许字段Enabled的值为False或True。</p> <p> 8.非法入侵限制:三次注册尝 试不成功便保护性关闭注册窗口,以防非法非法入侵者无限制尝试。</p> <p> 本文介绍了应用软件注册安全性 问题的综合解决方案,容易实现,便于扩充如增加注册时间限制和记帐收费功能等,可建立较完善的注册安全机制,适合大型商用软件开发。</p> </td></tr></table><br><img src="/xslimages/content/buttom.gif" align="absmiddle"></img> 相关内容 <br><ul><a href="/33554432/34603008/34668544/34672640/34672672/78733.htm">为Delphi数据表格增加彩色<br><br></a><a href="/33554432/34603008/34668544/34672640/34672672/78729.htm">自定义快速报表的打印预览窗口<br><br></a></ul><br><font color="#000000"><font color="#1C82C5"><img src="/xslimages/content/buttom.gif" align="absmiddle"></img></font> 相关链接 </font><br><ul></ul><a href=""><font color="#FF9900"><font color="#CC0000"></font></font></a><font color="#000000"><font color="#1C82C5"><img src="/xslimages/content/buttom.gif" align="absmiddle"></img></font> 更多的 </font><br><table width="70%"><tr><td width="30%" valign="top" align="left"><ul></ul></td><td width="30%" valign="top" align="left"></td></tr></table></td></tr></table><table width="98%" border="0" cellspacing="0"><tr><td width="85%" height="19" align="center" bgcolor="#FDF0C4"><a href="mailto:ph@cpcw.com"> 本文版权归作者和天极网共同所有,如有任何版权问题,请与我们联系。 </a></td><td width="15%" bgcolor="#FFCC66" height="19"> 【 <a href="/index.htm"> 回首页 </a> 】 </td></tr></table><br></td><td colspan="2" valign="top" width="25%" bgcolor="#eeeeee"><table width="97%" align="center"><tr><td bgcolor="#ff9900" width="182" height="15"></td></tr></table><table width="97%" border="0" cellpadding="3" align="center"><tr><td valign="top" height="23" border="1" bgcolor="#eeeeee" cellspacing="0" bordercolor="#ff9900"><div align="center"> 火热链接 </div></td></tr><tr bgcolor="#F5F5F5"><td width="27%" height="20" align="left"><div align="left"><a href="/33554432/44040192/112568.htm">办公室偷懒之绝招</a><br><a href="/33554432/44040192/113017.htm">网络成为日本第五大广告媒体</a><br><a href="/33554432/44040192/113377.htm">非常办公室(二十六)</a><br><a href="/33554432/44040192/113378.htm">非常办公室(二十七)</a><br><a href="/33554432/44040192/113772.htm">日本当代美女标准</a><br><a href="/33554432/44040192/113779.htm">移动网络别太沉重</a><br><a href="/33554432/44040192/113783.htm">把主旋律唱到网络上</a><br><a href="/33554432/44040192/113785.htm">网络将创造一千万个就业岗位</a><br><a href="/33554432/44040192/113787.htm">校园新宠电子课本</a><br><a href="/33554432/44040192/113789.htm">美国学者质疑“电脑从娃娃抓起”</a><br></div></td></tr></table><br><table width="97%" border="0" cellpadding="3" align="center"><tr bgcolor="#ff9900"><td valign="top" height="20"><div align="center"> 天极搜索 </div></td></tr><tr bgcolor="#F5F5F5"><form action="http://search.yesky.com/servlet/search" method="post" name="search" onsubmit="form_onsubmit(); return ValidationPassed;"><td width="27%" height="20" align="center"><div><script language="javascript"> function form_onsubmit() { ValidationPassed = true ; if (document.search.keyword.value=="") { alert ("请输入搜索关键字!"); ValidationPassed=false; } return ValidationPassed; } </script><input name="keyword" id="keyword" class="nava" size="12"></input><input type="hidden" name="classify" value="keyword"></input><input type="hidden" name="no" value="34603008"></input><input onClick="form_onsubmit(this.form);" style="HEIGHT:22px;WIDTH:40px" type="submit" value="搜索" name="submit2"></input></div></td></form></tr></table><div align="left"><font color="#000000"><br><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr align="center"><td><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td width="10" height="2"><img src="/xslimages/school/pathboy-ruanjian.gif" width="32" height="32"></img></td><td width="186" height="2" valign="top"><table width="100%" border="1" cellspacing="0" cellpadding="0" bordercolordark="#FFFFFF" bordercolorlight="#000000" bgcolor="#6898D0"><tr align="center"><td height="26"><font color="#FFFFFF"> MyDown下载 </font><font class="nava" color="#FFFFFF"></font></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="0" cellspacing="1" width="100%" align="center"><tbody><tr align="left"><td bgcolor="#ffffff"><script type="text/javascript" language="javascript" src="http://www.mydown.com/mydown.js"></script><br></td></tr></tbody></table><table width="100%" align="center"><tr><td align="center"><tr><td align="center"><a href="http://www.hoyodo.com"><img border="0" src="http://www.hoyodo.com/home/images/banner/botton.gif" width="120" height="60"></img></a><br><br><a href="http://e.yesky.com"><img border="0" src="http://e.yesky.com/images/logo_e2.gif" width="120" height="60" alt="天极E时代"></img></a></td></tr></td></tr></table></font></div><br></td></tr></table><table width="97%" border="0" cellspacing="0" cellpadding="0" align="center"><tr><td><div align="center"><a href="/hdong/gao.htm" target="_blank">欢迎投稿</a>| <a href="/bill/index.html" target="_blank">市场联系</a>| <a href="/serve/dnbjs.htm" target="_blank">关于我们</a>| <a href="/maillist/index.html" target="_blank">邮件列表</a>| <a href="/hdong/zaopin.html" target="_blank">加入我们</a>| <a href="/hdong/xinsi.html" target="_blank">隐私条款</a></div></td></tr></table><hr height="1" size="1" width="760"></hr><td width="57%" valign="top" rowspan="1" align="center"><div align="center"><script language="JavaScript" src="http://ad.cpcw.com/js/school.js"></script></div></td><table width="97%" border="0" cellspacing="0" cellpadding="0" align="center"><tr></tr><tr></tr><tr></tr></table><table width="97%" border="0" cellspacing="0" cellpadding="0" align="center"><tr><td><div align="center"><span class="nava"><font color="#000000" face="Arial, Helvetica, sans-serif"> Copyright (C) 1999 Yesky.com, All Rights Reserved </font><font color="#000000"><br> 版权所有 <font face="Arial, Helvetica, sans-serif"> Yesky </font></font></span></div></td></tr></table><script> document.write("<a href=http://best.netease.com/cgi-bin/view/viewbasic.cgi?rkai target=_blank> <img style=visibility:hidden src=http://best.netease.com/cgi-bin/log.cgi?user=rkai&refer="+escape(document.referrer)+"&cur="+escape(document.URL)+" border=0 alt=网易中文排行榜 width=15 height=15></a>");</script><A HREF="http://best.nease.net/cgi-bin/view/viewbasic.cgi?cpcw" TARGET="_blank"><IMG SRC="http://best.nease.net/cgi-bin/log.cgi?user=cpcw" style="visibility:hidden"/></A><br><iframe frameborder="0" scrolling="no" src="http://count.yesky.com/servlet/count?articleno=78730" height="0" width="100%"></iframe></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -