当前位置:早雪网网络学院编程文档ASP → 用ASP来做用户验证

用ASP来做用户验证

减小字体 增大字体 作者:佚名  来源:本站原创  发布时间:2005-6-24 3:17:44
用ASP来做用户验证

这是一个小型的用户验证程序。在security.inc文件中没有任何和NT有关的程序。我们要做的仅仅是把

<!--#INCLUDE FILE="security.inc"-->

放在你想要保护的ASP页面上 security的内容是:(程序不难,主要是提供方法)
<%
UserID=Session("UserID")
Rejected=False

If IsEmpty(UserID) Or IsNull(UserID) Or UserID="" Then
Attempted=False
URL=Request.ServerVariables("QUERY_STRING")
If IsEmpty(URL) Or URL="" Then
URL="" ' just in case
Else
URL="?" & URL
End If
URL=Request.ServerVariables("script_NAME") & URL

UserID=Request.Form("UserID")
UserPWD=Request.Form("UserPWD")

If IsEmpty(UserID) Or IsNull(UserID) Or UserID="" Then
Rejected=True
Else
' 在这里写上自己的所要验证的UserID,和UserPWD,当然你也可以从数据库中取,这里就不多写了
If UserID="Foo" AND UserPWD="Foo" Then
'保存 session 的值
Session("UserID")=UserID
Rejected=False
Else
Attempted=True
Rejected=True
End If
End If
End If

If Rejected Then
If Attempted Then
Title="Authentication Failure"
Else
Title="Please Authenticate"
End If
%>
<!--#INCLUDE FILE="authentication_form.htm"-->
<%
Response.End '在回来之前停止程序的执行
End If
' 否则,转向正常的网页。
%>

验证页(authentication_form.htm) 是以下内容:

<html><head><title><%=Title%></title></head>
<h1><%=Title%></h1>
<form action="<%=URL%>" method="POST">
Username: <input type="text" name="UserID" size="20"><br>
Password: <input type="password" name="UserPWD" size="20"><br>
<input type="submit">
</form>
</html>

你以后做的仅仅是把这段HTML贴到Include所在的页面,不过用ProntPage有点困难。
security.inc 是怎样工作的了?
如果用户已经被认证,那么security.inc会发现UserID已经被初始化了。如果没有,它就会给用户一个表单来让用户输入用户名和密码。如果还失败,嘿嘿对不起我们又得重来一次。

特别一点的代码就是当用户认证失几后会在URL变量中保存所有的信息。
注意如果用户不接受cookie或者是使用了不支持cookie的浏览器,那么session变量将不会保持,它将会一直要求用户来重新认证。这个问题我们能够用其它的方法来判断一下用户是否支持cookies,比如MSWC组件,我们在这儿就不多说了!

[数据载入中...] [返回上一页] [打 印]