当前位置: 首页 > 图文教程 > 网络编程 > ASP > 在ASP应用中验证用户身份(3)

ASP
asp实现取得数组中的最大值的代码
asp 将日期格式化为需要的格式
asp 下产生任意位数随机密码的代码
asp下返回以千分位显示数字格式化的数值
asp重定向页面的方法总结
asp下去除数组中重复的项的方法
asp下实现 重新排序数字数组的代码
asp 验证输入网址是否有效并可以访问 与正则验证输入网址
asp验证Ip格式的函数
asp实现生成由数字,大写字母,小写字母指定位数的随机数
asp 格式化sql中的like字符串
asp 实现显示所有的服务器变量值的函数
asp 取得用户真实IP,对代理地址仍然有效的函数
asp 通用数据库连接过程函数
asp 字符串截取函数
asp下实现格式化文件大小以MB显示的函数
asp 下用正则表达式检测邮箱格式的函数
asp 实现检测字符串是否为纯字母和数字组合的函数
asp代码实现检测组件是否安装的函数
asp通过JMAIL实现通用发送函数

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 185 ::
收藏到网摘: n/a

  三、用户身份验证

   为简单计,本文只讨论在服务器端的用户身份验证。登录页面是通过调用
ASPSecurity.inc中的signUserOn函数验证用户身份的。signUserOn检查数据库中
是否存在和用户输入的名字、密码匹配的记录:
function signUserOn(aSignon, aPassword)
dim dict
' 用户输入的名字
aSignon = lcase(trim(aSignon))
' 用户输入的密码
aPassword = lcase(trim(aPassword))
' 提取用户记录转换成Dictionary对象
set dict = getUser(aSignon)
' dict对象是否包含了合法的用户信息
if isUser(dict) then
if not dict("Password") = aPassword then
signUserOn = false
Session("msg") = "密码错误."
exit function
end if

' 更新最后访问时间
call updateLastOn(aSignon)

' 用SessionID (或不支持Cookies时,ID)标识用户记录
if not Session("SupportsCookies") then
Session("ID") = getID()
dict.Add "SessionID", Session("ID")
else
dict.Add "SessionID", Session.SessionID
end if

' 记录最后活动时间
dict.add "LastActivity", now()
' 在Session中记录当前用户信息
set Session("User") = dict
' 将当前用户加入正在访问用户列表
call addUserToApplication(dict)
signUserOn = true
else
Session("msg") = "用户名称错误"
signUserOn = false
end if
end function



   如果用户输入的名字和密码与数据库中的记录匹配,signUserOn函数返回
True。此时,用户被授权,Session("User")变量包含了一个Dictionary对象,其中
含有该用户的数据库记录的字段名称和值。另外,这里还把Dictionary对象加入到
Application("User")数组,这是为了便于获得当前正在访问安全站点的用户清
单。 signUserOn用到了ASPSecurity.inc中的许多子过程。由于大多数子过程都很
相似,下面只讨论其中的getUser。该函数先连接数据库,然后提取对应的用户记
录,最后将记录转换为Dictionary对象并返回它,如下所示:
function getUser(aSignon)
dim conn
dim R
set conn = openConnection()
set R = conn.Execute("SELECT * FROM Users WHERE Users.Signon='" &
aSignon & "'")
if err.number < > 0 then
' 输出错误信息
......
response.end
end if
if not R.EOF then
set getUser = recordToDictionary(R)
else
set getUser = nothing
end if
R.Close
set R = nothing
conn.close
set conn = nothing
end function


   如果用户在注册页面中单击的是注册按钮,则在经过必要的检查之后就可以在数
据库中生成新的用户记录了。注册成功的用户会自动进入安全页面,这一部分操作和
普通的登录过程是一样的。

   身份验证和注册操作都将错误信息存储在Session("msg")变量中。这些错误信
息可以显示在返回给用户的HTML页面中:
< %
if Session("msg") < > "" then
' 显示错误信息
......
Session("msg") = ""
end if
%>