您的位置:首页精文荟萃软件资讯 → 在ASP应用中验证用户身份3

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

时间:2004/10/7 19:18:00来源:本站整理作者:蓝点我要评论(0)

三、用户身份验证



   为简单计,本文只讨论在服务器端的用户身份验证。登录页面是通过调用

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

%>




相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 360快剪辑怎么使用 36金山词霸如何屏幕取词百度收购PPS已敲定!3

最新文章 微信3.6.0测试版更新了微信支付漏洞会造成哪 360快剪辑怎么使用 360快剪辑软件使用方法介酷骑单车是什么 酷骑单车有什么用Apple pay与支付宝有什么区别 Apple pay与贝贝特卖是正品吗 贝贝特卖网可靠吗

人气排行 xp系统停止服务怎么办?xp系统升级win7系统方电脑闹钟怎么设置 win7电脑闹钟怎么设置office2013安装教程图解:手把手教你安装与qq影音闪退怎么办 QQ影音闪退解决方法VeryCD镜像网站逐个数,电驴资料库全集同步推是什么?同步推使用方法介绍QQ2012什么时候出 最新版下载EDiary——一款好用的电子日记本