我把网页文件传到虚拟主机上的wwwroot文件夹下面,另外在wwwroot下建了一个子文件夹data,里面放了文件a.xml。比如我的域名是www.abc.com,头痛的是现在别人就可以在浏览器中输入www.abc.com/data/a.xml查看到XML文件里面的信息,怎样才可以禁止别人浏览这个XML文件?或者甚至让data文件夹内的所有文件都不能被访问?
拜求高手支招,我的技术分少得可怜,全奉献。

解决方案 »

  1.   

    问题补充:查了网上有人说设置web.config的forms验证,我试过了,但那只能禁止访问data文件夹内的aspx网页,对于XML文件别人还是能够访问
      

  2.   

    将XML文件的扩展名改为 a.cs 这样.net的引擎就会自行保护它,无法用HTTP方式访问到了
      

  3.   

    将XML文件的扩展名改为 a.cs 这样.net的引擎就会自行保护它,无法用HTTP方式访问到了
      

  4.   

    在web.config中,添加:
        <httpHandlers>
          <add path="Data/*" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/>
        </httpHandlers>
    对于所有从客户端的请求都屏蔽,服务器上可以以文件系统普通文件来访问.
      

  5.   

    把后缀改成.cs后访问倒是禁止了,但文件也成残废了:javascript读不到里面的数据,这个很关键。
      

  6.   

    试过了,不能创建wwwroot的同级目录。这跟服务器商的设置有关吗?
      

  7.   

    我把这个复制到web.config里去发现还是可以访问data文件夹。而且我都没看到有HttpForbiddenHandler这个类(事先已经添加了System.Web的引用和添加了命名空间,),汗~,咋回事呢?
    我也试图在web.config用<urlMappings><add url="~/data/a.xml" mappedUrl="Default.aspx"/></urlMappings>同样失败
      

  8.   

    关键是排除用设置IIS的方法,有没有可能用编程或设置web.config的方法限制访问文件夹呢?
      

  9.   

    把文件夹名改为:App_Data或放到App_Code
    这些文件夹是无法用HTTP方式访问到的!
    可以结贴了。
      

  10.   

    那些对静态资源的处理是不经过.NET处理的,直接由iis Response给客户端了。
      

  11.   

    果真如此!感谢cneee兄!结帖!