在ASP应用中验证用户身份(2)

谁愿当卒

谁愿当卒

2016-01-29 17:15

在ASP应用中验证用户身份(2),在ASP应用中验证用户身份(2)
  二、初始化以及用户输入合法性检查

   当一个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

 
展开更多 50%)
分享

猜你喜欢

在ASP应用中验证用户身份(2)

ASP
在ASP应用中验证用户身份(2)

在ASP应用中验证用户身份(5)

ASP
在ASP应用中验证用户身份(5)

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

在ASP应用中验证用户身份(1)

ASP
在ASP应用中验证用户身份(1)

在ASP应用中验证用户身份(3)

ASP
在ASP应用中验证用户身份(3)

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

在ASP应用中验证用户身份(4)

ASP
在ASP应用中验证用户身份(4)

利用SQLSERVER存储过程实现ASP用户身份验证

ASP
利用SQLSERVER存储过程实现ASP用户身份验证

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

构建你的网站新闻自动发布系统之七

构建你的网站新闻自动发布系统之七

解析Vista与系统不协调的三大工具界面

解析Vista与系统不协调的三大工具界面
下拉加载更多内容 ↓