我的一亩三分地 我就喜欢!
13fen  设为主页
 收藏本站
 
当前位置: > 一亩三分地:首页 > 网络学院 > 网络编程 > ASP专区 > Asp安全/XML > 对b/s结构如何部署你的xml文件~~~
热门文章排行
热门文章排行 手推车”功能的实现(10-07)
八大法则防范ASP网站漏洞(10-23)
ASP教程十一、调试ASP脚本(10-23)
在JSP中访问数据库大全(10-23)
虚机服务中常见Asp.Net低级错误一览(03-21)
精采文章排行
精采文章排行 ASP.NET实现抓取网页中的链接(11-15)
ASP连接数据库的11种方法(11-10)
如何动态创建网页的RSS内容摘要(11-10)
ASP网站漏洞及入侵防范方法(11-10)
ASP自定义函数:对字符串正则替换(11-10)
技术专题推荐
网管论坛交流
 

对b/s结构如何部署你的xml文件~~~ 

作者:佚名   来源:一亩三分地   点击:   日期:2007-03-22

我们在设计b/s程序的时候,经常要用到xml,,我们可以把这些xml数据保存在数据库里。
还有很多情况我们会把xml数据保存成文件放在服务器上。这样就有一个问题,,访问者如果知道这个xml地址,就可以在浏览器里访问到。而对于一些xml你不想被访问。接下来介绍如何实现这个功能。
先申明一点,既然不能被客户端访问,所以你也不能用客户端脚本来解析这些xml,只能在服务器上解析后再把结果传给访问者。

方法很简单,
1、首先你先写一个自己的处理类。该处理类继承自IHttpHandler。
代码如下,这里代码比较简单,你可以根据自己功能需要增加复杂的功能
using System;
using System.Web;

namespace Dxh.Handler
{
/// <summary>
/// Handler 的摘要说明。
/// </summary>
public class XmlHandler : IHttpHandler
{
public XmlHandler()
{
//
// TODO: 在此处添加构造函数逻辑
//
}

public void ProcessRequest(System.Web.HttpContext context)
{
HttpResponse objResponse = context.Response ;
objResponse.Write("<html><body><br><br><center>您不能直接访问该文件! ") ;
objResponse.Write("</center></body></html>") ;
}

public bool IsReusable
{
get
{
return true;
}
}
}
}

2、创建好处理类后,修改web.config文件,使得xml文件用该XmlHandler来处理。
<httpHandlers>
<add verb="*" path="*.xml" type="Dxh.Handler.XmlHandler,Dxh.Handler"/>
</httpHandlers>
3、在IIS中添加ISAPI扩展,将我们的新后缀名.xml添加进去,具体过程为:
IIS--》选中“默认网站”点右键--》选“属性”--》“主目录”--》“配置”--》点“映射”里的“添加”按钮--》在弹出对话框里点击“浏览”按钮,选择aspnet_isapi.dll文件,并在扩展名里填xml,完成后确定。
4、最后一步,创建一个xml文件,通过http;//localhost的方式访问试试,浏览器只会显示“您不能直接访问该文件!”。当然你可以在服务器上操作该xml文件,把结果返回给访问者。


以上介绍了整个过程,当然在实际操作中,我们可以简化一些操作。。对于一些租用空间的人来说,要添加ISAPI扩展还是比较麻烦的。如果我们能够跳过第三步。只要简单改动web.config就可以该有多好。其实我们用个小技巧就行了。
在我们对xml文件命名的时候。把后缀改成已经是映射到aspnet_isapi.dll的后缀就可以了。如aspx,cs,ashx,ascx等等,先不要迷糊,,听我说完。

我们用ashx后缀来举例说明。我们只要先统一xml的命名规则。如 kind.xml.ashx,sex.xml.ashx,search.xml.ashx,现在你应该有点清楚了吧。

修改下web.config
<httpHandlers>
<add verb="*" path="*.xml.ashx" type="Dxh.Handler.XmlHandler,Dxh.Handler"/>
</httpHandlers>

这样对于原来的ashx文件,他该怎么处理就怎么处理,对于*.xml.ashx的文件就对不起了。
如果你也想用客户端脚本访问,,那就直接命名成*.xml。还比较灵活吧~~~

好了,,这也是我刚想到的,在项目里用了一把,,感觉很牛,大家也试试。




文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【论坛讨论

   相关文章:
·ASP中巧用Response属性 ·第六课:ASP脚本循环语句
·在 Web 页上使用条件数值格式 ·连接数据库查询手册(不仅仅适用于asp)
·警惕"给你的FileSystemObject对象加把锁" ·用ASP做全文检索

   文章评论:(条)
  
 请留名: 匿名评论   点击查看所有评论 网管论坛
 

  责任编辑:一分  声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。