|
![]() |
名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
二、初始化以及用户输入合法性检查 当一个ASP应用启动的时候,IIS就会寻找一个global.asa文件。假如该文件存 在,就开始执行Application_onStart。在这里可以初始化应用级的变量和常量。下 面的代码在Application_OnStart中初始化一个数组来跟踪任意时刻登录系统的所有 用户: Sub Application_OnStart Application("Users") = Array() End Sub 在执行Application_OnStart之后,ASP引擎创建一个Session对象并初始化 SessionID,然后触发Session_OnStart事件。在这里可以初始化会话级(和特定用 户相关的)变量和常量: sub Session_OnStart Session.Timeout=1 \\\' 数据库DSN Session("ConnectionString") = "ASPSecurity" Session("ConnectionTimeout") = 15 \\\' 读/写方法 Session("Mode") = 3 end sub 考虑到用户的浏览器可能不支持Cookies或关闭了Cookies功能,因此必须在第 一个ASP页面中检查Cookies的支持情况并把结果保存在一个Session变量中。此外, 当用户在登录页面中单击“登录”按钮,还应该检查用户输入的合法性,如下面的代 码所示,其中ASPSecurity.inc提供一些公用函数(如signUserOn用于验证用户身 份): < %@ Language=VBScript %> < % option explicit %> < % Response.buffer = true %> < !-- #INCLUDE FILE="ASPSecurity.inc" --> < % dim aSignon dim aPassword dim dataValidated dataValidated = false \\\' 检查浏览器是否支持Cookies Session("SupportsCookies") = (instr(1, Request.ServerVariables ("HTTP_COOKIE"), "ASPSESSIONID", vbTextCompare) > 0) if Request("Action") = "登录" then aSignon = lcase(trim(Request.Form("Signon"))) aPassword = lcase(trim(Request.Form("Password"))) if len(aSignon) = 0 then Session("msg") = "请输入用户名字." end if if len(aPassword) = 0 then Session("msg") = "请输入密码." else dataValidated=true end if if dataValidated then if signUserOn(aSignon, aPassword) then \\\' 用户身份被证明,答应进入受保护页面 Response.Redirect "signedOn.asp?ID=" & Session("ID") end if end if elseif Request("Action") = "注册" then Response.Redirect "register.asp" end if %> 对于注册页面,除了要检查用户是否完整地输入所有内容之外,还应该检查两次 输入密码是否一样、用户名字是否与数据库中已有记录冲突等。实现代码请参见本文 所附的ZIP文件。 由于用户每次启动浏览器连接到服务器时SessionID都是不同的,所以不能直接 用它来关联用户与存储在数据库中的相关信息,但SessionID可以用来临时地标识从 数据库或文件提取的用户信息。对于那些不支持Cookies的浏览器,可以用另外的方 法来创建唯一ID,如下面的getID使用的是随机函数: function getID() dim numbers dim letters dim I dim ID Randomize numbers="0123456789" letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" for I = 1 to 10 if I mod 2 <> 0 then ID = ID & mid(letters, Int((26 * Rnd) + 1),1) else ID = ID & mid(numbers, Int((10 * Rnd) + 1),1) end if next getID = ID end function 返回类别: 教程 上一教程: VBS、ASP代码语法加亮显示的类(2) 下一教程: 怎样用HTMLENCODE显示UNICODE 您可以阅读与"在ASP应用中验证用户身份(2)"相关的教程: · 在ASP应用中验证用户身份(5) · 在ASP应用中验证用户身份(4) · 在ASP应用中验证用户身份(3) · 在ASP应用中验证用户身份(1) · 用WSE在WEB服务中验证用户身份 |
![]() ![]() |
快精灵印艺坊 版权所有 |
首页![]() ![]() ![]() ![]() ![]() ![]() ![]() |