本任务的内容
概要
创建应用程序
测试应用程序
其他注意事项
疑难解答
参考
概要
本文演示如何编写简单的 Active Server Pages (ASP) 代码来通过登录页对访问进行限制。 本文介绍的都是一些简化的方法。 如想获得更多的功能或更可靠的安全性,请参见本文末尾的“参考”一节。

在本示例中,您将创建下面两个 ASP 页:
MyPage.asp: 此页是受保护的,如果不提供正确的用户名和密码,则不能访问此页。
Logon.asp: 此页提供了一个窗体,用户可将其凭据键入此窗体中。 该窗体接着就会验证用户的用户名和密码。 如果用户名和密码正确,它就向客户机写入一个 Cookie,此 Cookie 就成了访问其他 ASP 页的“钥匙”。
返回页首
创建应用程序
使用“记事本”创建这些 ASP 页。 要启动“记事本”,请从 Windows 开始菜单上,指向程序,指向附件,然后单击记事本。 将每个文档保存到本地 Web 服务器的根 Web 目录(通常是 C:/InetPub/Wwwroot/)下。 如要更改文档的位置,则还必须对这些文件中的脚本进行相应的修改。
Logon.asp
在“记事本”中,单击文件菜单中的新建。
选中以下代码,右键单击选中的内容,然后单击快捷菜单中的复制。在“记事本”中,单击编辑菜单上的粘贴以便将以下代码粘贴到“记事本”中:
<html>
<head>
<title>Logon Form</title>
<%
Username="Administrator"
Password="Admin"
Validated = "OK"
if Strcomp(Request.Form("User"),Username,1)=0 AND Request.Form("password") = Password then
'Set the validation cookie and redirect the user to the original page.
     Response.Cookies("ValidUser") = Validated
     'Check where the users are coming from within the application.
     If (Request.QueryString("from")<>"") then
Response.Redirect Request.QueryString("from")
else
'If the first page that the user accessed is the Logon page,
         'direct them to the default page.
           Response.Redirect "MyPage.asp"
     End if    
Else
' Only present the failure message if the user typed in something.
     If Request.Form("User") <> "" then
         Response.Write "<h3>Authorization Failed.</h3>" & "<br>" & _
         "Please try again.<br> <br>"
     End if
End if
%>
</head>
<body bgcolor="#FFFFFF">
<FORM ACTION=<%Response.Write "Logon.asp?"&Request.QueryString%> method="post">
<h3>Logon Page for MyPage.asp</h3>
<p>
Username:
<INPUT TYPE="text" NAME="User" VALUE='' size="20"></INPUT>
Password:
<INPUT TYPE="password" NAME="password" VALUE='' size="20"></INPUT>
<INPUT TYPE="submit" VALUE="Logon"></INPUT>
</FORM>
</body>
</html>
将此页在 C:/InetPub/Wwwroot/ 文件夹中保存为 Logon.asp。
MyPage.asp
MyPage.asp 是您想要保护的页。 您可以使用具有 .asp 文件扩展名的任何页。
在“记事本”中,单击文件菜单上的新建。
选中以下代码,右键单击选中的内容,然后单击快捷菜单中的复制。在“记事本”中,单击编辑菜单上的粘贴以便将以下代码粘贴到“记事本”中:
<%
Validated = "OK"
if Request.Cookies("ValidUser") <> Validated then
'Construct the URL for the current page.
     dim s
     s = "http://";
     s = s & Request.ServerVariables("HTTP_HOST")
     s = s & Request.ServerVariables("URL")
     if Request.QueryString.Count > 0 THEN
s = s & "?" & Request.QueryString
end if
     'Redirect unauthorized users to the logon page.
     Response.Redirect "Logon.asp?from=" &Server.URLEncode(s)
End if
%>
<html>
<head>
<title>My Protected Page</title>
</head>
<body>
<p align="center">This is my secret information<br>
You cannot see it unless you<br>
are properly logged on!</p>
</body>
</html>
将此页在 C:/InetPut/Wwwroot/ 文件夹中保存为 MyPage.asp。
返回页首
测试应用程序
打开 Web 浏览器。 如果您使用的是 Microsoft Internet Explorer,请从 Windows 开始菜单上,指向程序,然后单击 Internet Explorer。
在“地址”栏中键入下面的地址,然后按 ENTER 键:
http://localhost/MyPage.asp ;
您会注意到,您被重定向到 Logon.asp。
键入 Logon.asp 文件中 ASP 代码中包含的用户名和密码信息(用户名:Administrator,密码:Admin),然后单击登录。 这样您就应当可以看到 MyPage.asp 页了。
请再键入一个错误的用户名或密码,以确认您无法登录,因而也就不能浏览到 MyPage.asp。
返回页首
其他注意事项
如想保护其他 ASP 页,请将以下代码添加到 ASP 页的顶部,位于其他所有代码之前:
<%
Validated = "OK"
if Request.Cookies("ValidUser") <> Validated then
'Construct the URL for the current page.
     dim s
     s = "http://";
     s = s & Request.ServerVariables("HTTP_HOST")
     s = s & Request.ServerVariables("URL")
     if Request.QueryString.Count > 0 THEN
s = s & "?" & Request.QueryString
end if
     'Redirect unauthorized users to the logon page.
     Response.Redirect "Logon.asp?from=" &Server.URLEncode(s)
End if
%>
若要登录并重定向到所请求的受保护页,必须让超链接指向此页面而非 Logon.asp 页。 在本例中,要确保超链接指向 MyPage.asp。如果您未登录,则此页中包括的代码将使您自动重定向到 Logon.asp。
如果确实想让您站点的访问者每次访问时都登录,则可以将 ValidUser 这一 Cookie 保存到他们的计算机上,以便他们下次访问时能使用此信息。 一旦会话超时或您关闭浏览器窗口,前面的代码就会导致 Cookie 过期。 如想设置 Cookie 的过期期限,请在 Logon.asp 中将下面的代码
         Response.Cookies("ValidUser") = Validated
改为:
         Response.Cookies("ValidUser") = Validated
         Response.Cookies ("ValidUser").Expires = DATE + 1
若要指定过期期限,可将“1”改为所需的天数。 例如,下面的代码会使 Cookie 在您的计算机上保留一年后过期:
         Response.Cookies ("ValidUser").Expires = DATE + 365
如果您设置了过期日期,则 Cookie 将保存到最终用户的计算机上,这样此用户以后就可以绕过登录页。 不过,如果该用户是从另一台计算机上浏览到该站点的,则此 Cookie 就会保存到那一台计算机上,这样别人就有可能读到并复制此信息。
返回页首
缺陷
ASP 登录页可以用于很多应用程序,但它不能提供最高的安全性。 一般来说,NTFS 是最安全的。 NTFS 要求用户键入 Microsoft Windows 可识别的用户名和密码。 NTFS 安全机制可用来为硬盘上的文件和文件夹设置访问权限。

另外,ASP 安全性以 Microsoft Internet Information Server (IIS) 安全性为基础。 如果未能妥善设置 IIS,而您添加了 ASP 安全功能,那么您不能防止高级用户访问您的站点。

有关 IIS 和 ASP 安全性的更多信息,请参见“参考”一节。
前面那段代码只允许使用一组用户凭据。 下面的 Microsoft 知识库文章演示了如何使用一种在数据库中保存了许多用户名的 ASP 登录页:
Q299987 HOW TO: Use Database and ASP Sessions to Implement ASP Security(使用数据库和 ASP 会话实现 ASP 安全)
如果您为 Cookie 设置了过期日期,则此 Cookie 就保存在浏览您的页面时使用的那台计算机上。 如果有人从咖啡馆里的计算机等公用计算机上浏览您的页面,那么 Cookie 就保存在此计算机上,于是其他人就有可能读到并复制此信息。 如果不设置过期日期,则 Cookie 就不会保存到计算机的硬盘上(它只存储在内存中),而且一旦浏览器关闭它就会从计算机的内存中被删除。
返回页首
参考
相关 Microsoft 知识库“How To”文章
Q299987 HOW TO: Use Database and ASP Sessions to Implement ASP Security(使用数据库和 ASP 会话实现 ASP 安全)
CHS299970 HOW TO: 使用 NTFS 安全保护在 IIS 4.0 或 5.0 上运行的 Web 页
Microsoft 安全参考
Microsoft 安全
http://www.microsoft.com/security/ ;

TechNet Web 站点安全
http://www.microsoft.com/technet/treeview/default.asp?url=/technet/itsolutions/security/Default.asp ;
如果上述 TechNet 链接失败,请通过下面的地址浏览到 TechNet 主页:
http://www.microsoft.com/technet/default.asp ;
在左窗格中,指向 Security(安全),然后单击 Web Site( Web 站点)。
通用安全参考
白皮书: Implementing a Secure Site with ASP(使用 ASP 实现安全的站点)
http://www.microsoft.com/serviceproviders/whitepapers/impl_secure_asp_p10674.asp ;
Q164882Practical Recommendations for Securing Internet-Connected Windows NT Systems(关于加强通过 Internet 连接的 Windows NT 系统安全性的实用建议)
Q282060 Resources for Securing Internet Information Services(用于加强 Internet 信息服务安全性的资源)
Q271071 Minimum NTFS Permissions Required for IIS 5.0 to Work(IIS 5.0 工作所需的最低 NTFS 权限)
Q174811Authentication and Security White Paper for Internet Developers(面向 Internet 开发人员的身份验证和安全性白皮书)
Q229694 How to Use the IIS Security "What If" Tool(如何使用 IIS 安全“What If”工具)
Q172925 INFO: Security Issues with Objects in ASP and ISAPI Extensions(ASP 和 ISAPI 扩展中对象的安全问题)
专用安全参考
Q239120 Create a Secure FTP Directory that Uses Password Authentication(创建使用密码验证的安全的 FTP 目录)
Q216705 How to Set Permissions on a FrontPage Web on IIS(如何在以 IIS 为基础的 FrontPage Web 上设置权限)
Q280383 IIS Security Recommendations When You Use a UNC Share and Username and Password Credentials(使用 UNC 共享和用户名及密码凭据时的 IIS 安全建议)
Q176378 HOWTO: SQL Server with Integrated Security, IIS on Same Machine(使用集成安全性的 SQL Server 和 IIS 在同一台计算机上)
Q260985 XIMS: Minimum NTFS Permissions Required to Use CDONTS(使用 CDONTS 所需的最低 NTFS 权限)
CHS257685 Proxy Server 2.0 安全性清单
Q165340 Change Permissions Needed on Index Server System Files(更改索引服务器系统文件所需的权限)
CHS235874 Proxy Server 2.0 需要的 Windows NT 文件系统 (NTFS) 权限
返回页首
First Published: Jun 12 2001 12:16PM
关键字 kbASPObj kbScript kbSecurity kbServer kbVBScript kbWebServer kbGrpDSASP kbDSupport kbCodeSnippet kbSysAdmin kbHOWTOmaster kbhowto

Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、

ASP 代码给 ASP 页加密码保护相关推荐

  1. asp毕业设计——基于asp+access的网上图书销售系统设计与实现设计与实现(毕业论文+程序源码)——网上图书销售系统

    基于asp+access的网上图书销售系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于asp+access的网上图书销售系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦. ...

  2. asp.net中此页的状态信息无效,可能已损坏的解决之道

    asp.net中此页的状态信息无效,可能已损坏的解决之道[转] 默认分类 2009-02-06 16:16:06 阅读137 评论0 字号:大中小 针对此问题网上有一种解决办法,就是在该工程中的web ...

  3. 带有Upida/Jeneva的ASP.NET MVC单页应用程序(前端/AngularJS)

    目录 介绍 背景 基本结构 JS控制器 HTML视图 查看容器 结论 参考 下载源3.4 MB 在Codeplex上下载最新版本和更多示例 参见工作示例 介绍 在上一篇文章中,我演示了如何使用WebA ...

  4. 带有Upida/Jeneva.Net的ASP.NET MVC单页应用程序(后端)

    目录 介绍 问题 问题1 问题2 问题3 解决方案 问题1--智能序列化 问题2--反向引用 问题3--映射更新 说明 下载源3.4 MB 在Codeplex上下载最新版本 参见工作示例 介绍 让我们 ...

  5. 经典ASP代码大集合

    1. οncοntextmenu="window.event.returnvalue=false" 将彻底屏蔽鼠标右键 <table border οncοntextmenu ...

  6. 常用ASP代码(一)

    获取页面的HTML <script>     var oXmlHttp = new ActiveXObject("Microsoft.XMLHTTP");     oX ...

  7. ASP.NET 母版页,内容页之间如何传参数

    ASP.NET 母版页,内容页之间如何传参数 绪论:本文介绍如何使用.net 母版页(.master)和内容页(.aspx)相互传参数 母版页传值到内容页 上面可以看见母版页的时间值已经到了内容页上面 ...

  8. mvc怎么套用html模板,ASP.NET MVC3模板页的使用(2)

    本文为大家演示下MVC3中怎样使用模板页,在传统的webform设计模式中,我们使用masterpage作为模板页,在MVC3 razor视图设计中,我们使用另一种方式作为模板页. 新建一个MVC3项 ...

  9. 用纯ASP代码实现图片上传并存入数据库中

      用纯ASP代码实现图片上传并存入数据库中    热     ★ 用纯ASP代码实现图片上传并存入数据库中 用ASP编写网站应用程序时间长了,难免会遇到各式各样的问题,其中关于如何上传文件到服务器恐 ...

最新文章

  1. Spring Cloud企业微服务分布式云架构技术点整合
  2. 【天津大学主办|EI稳定检索】第三届无线通信与智能电网国际会议,学术大咖邀您共聚杭州!...
  3. bootstrap 隐藏元素_Bootstrap中折叠面板的样式内容
  4. 时间管理——你不可不知的3种时间管理方法
  5. json格式校验并显示错误_使用postman做自动化接口校验
  6. python安装cv2模块_python - OpenCV已成功安装但未导入错误:没有名为“ cv2”的模块 - 堆栈内存溢出...
  7. 深入大数据安全分析(1):为什么需要大数据安全分析?
  8. mysql的三种安装方式(详细)
  9. 【前端】前端学习课程及内容概述
  10. python保存的快捷键_新手学Python需要知道的Pycharm常用快捷键总结及配置方法
  11. web程序中的用户注册
  12. 怎么起用计算机无线开关,笔记本无线网络开关,详细教您如何打开笔记本电脑无线网卡开关...
  13. 人工智能导论(数据挖掘)
  14. 云呐|固定资产管理的目的,固定资产管理办法的目的
  15. ZOJ 3755 Mines
  16. 密码学与网络安全课程习题集及参考答案(一些思考题)
  17. 招聘网站数百万条敏感数据泄露,简历、身份证扫描件统统曝光
  18. 分享几个我常用的私活接单渠道
  19. matlab-高数 plot 二维画图 绝对值函数 取整函数 分段函数
  20. php artisan命令表,php artisan 命令列表

热门文章

  1. SQLite数据库存储
  2. 基于Python Tornado的在线问答系统
  3. 2-09 CentOS系统参数优化
  4. C++ STL中vector用法简要总结
  5. 你真的了解实时计算吗?
  6. neo4j——图数据库初探 - JDream314的专栏 - 博客频道 - CSDN.NET
  7. [转载]潜移默化学会WPF(技巧篇)--具有Items元素的控件子项获取(一)
  8. SDK用DIAPI连接SBO的实现
  9. 相机标定之4个坐标系之间的变换关系
  10. 三相全桥电压型PWM逆变器(交直交)Simulink仿真