文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院网络编程ASPASP中简易用户访问控制-2
精品推荐
特别推荐
·如何解密加密的ASP源代码
·PHP+MySQL 购物车程序实例
·ASP网站漏洞及入侵防范方法
·ASP网络安全
·1小时ASP入门
·初学ASP动态网页制作常用错误处理
·ASP实现网页打开任何类型文件都保存
·ASP技巧:使用FSO自动创建多级文件夹的函数
·轻松建站 主流ASP内容管理系统
·ASP教程:透彻掌握ASP分页技术
·ASP脚本语言的19个基本技巧使用
·推荐文章:ASP脚本程序的15种使用技巧
·问题解答:ASP编程中关于session的用法
·必学技巧:防范ASP木马的十大基本原则
·实例技巧:ASP方便实现网站的每日更新
·精华文章:ASP中SQL语句参考及记录集对象
·无组件上传图片到数据库中,最完整解决方案
·入门:简单熟悉掌握ASP的语法和变量
·ASP网站开发常备:日期和时间函数示例
·ASP教程
热点TOP10
·用ASP编写网上调查投票系统
·ASP制作学生档案管理系统(毕业论文)
·WEB打印设置解决方案二(利用ScriptX.cab控件改变IE打印设置)
·ASP网站漏洞及入侵防范方法
·如何解密加密的ASP源代码
·无组件上传图片到数据库中,最完整解决方案
·多图片上传到指定的目录并存到数据库
·ASP不需要组件生成图片验证码的方法
·jsp留言板源代码二: 给jsp初学者.
·PHP+MySQL 购物车程序实例
·ASP分页代码,已经写成类了,值得参考
·1小时ASP入门
·asp编程中非常实用的例子
·用ASP设计论坛
·ASP动态网页实例:表单多文件上传类
·小偷程序原理
·GridView 分页导航
·TreeView使用笔记
·ASP教程:透彻掌握ASP分页技术
·总结:谈谈学习ASP动态网页制作技术的编程心得

ASP中简易用户访问控制-2

日期:2007年7月8日 作者: 查看:[大字体 中字体 小字体]


  使用Session变量的问题
虽然Session变量是简单易用的,而且比其他方法要安全,但还是有一些问题。首先,只有访问者的浏览器支持cookie时,Session变量才能正常工作。尽管现在大多数浏览器都支持cookie,但是记住访问者可以拒绝使用它(这依赖于浏览器的安全设置)。
其次,特别在IIS4中,当浏览器请求多个页面时,Session变量可能被半途丢失。通常,遵循下面三个简单原则可以将这个漏洞减少到最小:
○ 只使用一个global.asa文件,放置在站点的根目录下。附带多个global.asa的嵌套应用程序,可能导致session变量使用越界。
○ 确认IUSE帐号或者它所属的组对global.asa文件至少有读的权限,并且IIS拥有Anonymous访问权限。
○ 要确认在所有页面中你都使用同样的字符大小写格式。Netscape(以及其他浏览器)对于/ThisFolder/ThisFile.asp 和 /thisfolder/thisfile.asp 这两个链接是当作在两个不同目录下的两个不同文件看待的。所以当从页面中取回一个cookie时,可能会因为大小写问题发生错误。
在数据库中保存登录信息
如果需要跟踪大量访问者的信息,仅仅使用include文件的方式就会变得很难管理。这时,我们可以使用数据库。利用此技术,同样适用于运行访问者加入或者在线登记的情况,并且将他们加入用户列表。对于这个问题在此不做进一步探讨。
使用数据库处理全部的过程是非常简单的!当用户提供了登录信息后,使用SQL的SELECT命令在数据库中查找输入的用户名,并取回匹配的口令。如果取回的口令与输入的口令一致,就允许他们进入下一步:
strSQL = "SELECT sPassword FROM Users " _ & "WHERE sUsername = " & Request("v1") & ""
加入登录信息的问题
然而,加入新用户是一个小难题。如果发现用户在数据库中不存在,并且决定使用ASP自动加入他们,我们就必须注意了。换言之,当用户填写新的信息时,可能有另外的用户使用同样的用户名在做同样的事情,而且后者动作快,首先在数据库中保存了信息,这样,前者的加入工作就不能完成。
有2个显然的方法可以避免这个现象。一个方法是:自动建立一个带空口令的新记录,用户日后可以修改它:
strSQL = "INSERT INTO Users (sUserName, sPassword) " _ & "VALUES(" & Request("v1") & ", null)"
一个更好的方法是:如果新记录创建成功,就使用一个过程返回一个特殊的数值(比如用户名),或者,如果不成功,返回错误信息。这样,用户就可以选择一个新的用户名。下面的例子是使用SQL Server存储过程,如果加入新记录成功,就返回用户名,如果用户名已经存在,就返回空字符串:
CREATE PROCEDURE AddUser @s_user varchar(12), @s_pword varchar (12) AS
IF EXISTS (SELECT * FROM Users WHERE sUserName = @s_user)
SELECT
ELSE
BEGIN
INSERT INTO Users (sUserName, sPassword)
VALUES(@s_user, @s_pword)
SELECT sUserName FROM Users WHERE sUsername = @s_user
END
这样就可以在ADO中执行这个过程,并检查返回值来确认是否添加成功。如果失败,就通知用户选择一个新用户名。这里有一些代码描述了如何使用上述的存储过程,你可以从本文下载的文件中找到这些代码。
以下是从表单中收集的数据:
strUserName = "NewUser1"
strPassword = "ThePassword"
定义数据库连接:
strConnect = "DRIVER={SQL Server};SERVER= yourserver ; " _
& "DATABASE= yourdatabase;UID= yourusername;PWD= yourpassword ;"
建立并打开数据库连接:
Set oCon = Server.CreateObject("ADODB.Connection")
oCon.Open strConnect
建立command对象,设置属性
Set oCmd = Server.CreateObject("ADODB.Command")
oCmd.ActiveConnection = oCon our open connection
oCmd.CommandType = 4 its a stored procedure
oCmd.CommandText = "AddUser" the procedure name
提供参数执行command对象,得到结果:
Set oRs = oCmd.Execute (lngRecsAffected, Array(strUserName,strPassword))
strResult = Trim(oRs.Fields(0)) ADO may add a space to the result
显示结果,如果错误,显示“user exists warning”:
If strResult = "" Then
Response.Write "User Already Exists"

[1] [2] 下一页 




上一篇:ASP中简易用户访问控制-1

下一篇:利用ASP打造网站论坛DIY -1

ASP中简易用户访问控制-2 相关文章:
·“黑客”教你如何远程控制计算机
·简易分辨处女
·XP用户:教你实用50招
·神不知鬼不觉地更换Win XP用户密码
·AIX 5L 学习大纲/简易教程(2)(未经许可,请勿COPY)
·Java图形用户界面设计
·Windows无法访问指定设备,路径或文件.您可能没有合适的权限访问这个项目
·Dreamweaver MX 2004做ASP程序(4)用户注册系统
·控制射精训练
·免费申请QQ(腾迅专门为国外用户提供)
ASP中简易用户访问控制-2 相关软件:
·简易性知识手册
·风险管理与内部控制(普华永道)
·飘易多用户日记本(蓝色幻想) v1.5
·地面控制 2中文版
·System Spec(控制系统软件)V2.40 绿色版
·虎鹰网络美化多用户留言本
·闪客留言簿(单用户版)
·阿江酷站访问统计系统 v1.0
·Lhgb 多用户留言版系统
·互动调查多用户投票

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.viphot.com
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.viphot.com All Rights Reserved. 鄂ICP备05000083号Powered by:viphot