ASP

本类阅读TOP10

·asp常用数据库连接方法和技巧
·无组件生成BMP验证码
·一些常用的辅助代码 (网络收藏)
·JavaScript实现的数据表格:冻结列、调整列宽和客户端排序
·VisualStudio.NET_2003及其 MSDN 下载地址
·ASP模拟MVC模式编程
·图片以二进制流输出到网页
·MD5加密算法 ASP版
·ASP.NET编程中的十大技巧
·改进 ASP 的字符串处理性能

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
运用Stored Procedure验证login的输入

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

本文提供一种运用Stored Procedure验证login输入的方法,这种方法与目前大多数ASP程序的验证方法相比,执行效率高,代码简捷。在这里我运用了一个sp_login的SP来获得customerID,然后把它作为Session全程使用。看了许多商城代码,大多数使用cookie来保存,我认为不是一种好的方法。另外,运用COMMAND对象连接ADO是执行效率最高的方法,可以参考MSDN的相关文章,这是MS推荐的连接方法。在以后的文章中,我将频繁使用COMMAND对象和Stored Procedure来建立高效率,保密的商城程序。

另一个需要说明的是错误信息返回的处理方法。许多程序使用Javascript来验证,这种频繁的语言转换会降低程序的执行效率,建议大家使用服务器端的验证方法,因为我看见许多商城程序采用了Javascript。

网上流行的一些商城程序的SQL Server版本,我看了几个,发现不是真正的SQL Server版本,只是把数据库从ACCESS转换到了SQL SERVER,没有利用SQL SERVER一些优秀的性能,从而降低了执行效率。

<% Option EXPLICIT %>
?
<%
Dim strUserID, strPassword

strUserID = Request.Form("txtLogonName")
strPassword = Request.Form("txtPassword")

Dim strErrMsg
strErrMsg = ""

If Trim(strUserID) = "" OR Trim(strPassword) = "" Then
?strErrMsg = strErrMsg & "UserID and Password cannot be blank
"
Else
Dim objCmd
Set objCmd = Server.CreateObject("ADODB.Command")

objCmd.ActiveConnection = strConn 'Where?
objCmd.CommandText = "sp_Login" 'What?
objCmd.CommandType = adCmdStoredProc

'Create Parameters
Dim objParam1, objParam2, objParam3
Set objParam1 = objCmd.CreateParameter("@CUS_logonName", adVarChar, adParamInput, 50, strUserID)
Set objParam2 = objCmd.CreateParameter("@CUS_password", adVarChar, adParamInput, 50, strPassword)
Set objParam3 = objCmd.CreateParameter("@CUS_customerID", adInteger, adParamOutput)

'Specify which order they should be in
objCmd.Parameters.Append objParam1
objCmd.Parameters.Append objParam2
objCmd.Parameters.Append objParam3

objCmd.Execute

'Test3: Is userid and password valid in DB
if ISNULL(objParam3.Value) Then
?'Invalid credentials
?strErrMsg = strErrMsg & "Invalid username and password
"?
end if
end if

If strErrMsg = "" Then
?'No problems
?Session.Contents("CustomerID") = objParam3.Value
?Response.Redirect "serach.asp"
Else
?Dim strURL
?strURL = "index.asp?errMsg=" & strErrMsg
?strURL = strURL & "&UserID=" & strUserID
?strURL = strURL & "&Password=" & strPassword
?Response.Redirect strURL
End If

%>

?




相关文章

相关软件