就是对net目录进行访问限制,只对指定的用户开放,不使用everyone用户,这样既能浏览,同时又限制访问用户只能对该目录进行操作,无法对硬盘上的其它目录操作。确保安全。

解决方案 »

  1.   

    以前ASP系统时,我做过。但对于ASP.NET就不行了,总是提示:
    服务器无法访问应用程序目录“D:\vodpublisher\”。该目录不存在或因为安全设置而无法访问。 
    如果将目录添加everyone时,就都正常,使用某个用户名(guests组)就不行
      

  2.   

    以下示例向 Kim 和管理角色的成员授予权限,而拒绝 John 和所有匿名用户:<authorization>
        <allow users="Kim"/>
        <allow roles="Admins"/>
        <deny users="John"/>
        <deny users="?"/>
    </authorization>
    用户和角色都可以通过使用逗号分隔的列表来引用多个实体,如下面的示例所示。<allow users="John, Kim, contoso\Jane"/>
    注意,域帐户 (contoso\Jane) 必须同时包括域和用户名的组合。除身份名称外,还有两种特殊身份,如下表所示。标识 说明 
    * 指所有身份 
    ? 指匿名身份 若要允许 John 并拒绝其他任何人,可以构造下面的配置部分。<authorization>
        <allow users="John"/>
        <deny users="*"/>
    </authorization>
    下面的示例允许每个人使用 GET,但只有 Kim 可以使用 POST。<authorization>
        <allow verb="GET" users="*"/>
        <allow verb="POST" users="Kim"/>
        <deny verb="POST" users="*"/> 
    </authorization>
    使用下面的试探法应用规则: 位于较低目录级别的配置文件中包含的规则优先于位于较高目录级别的规则。系统通过构造一个 URL 的所有规则的合并列表,其中最近(层次结构中距离最近)的规则位于列表头,来确定哪条规则优先。 
    给定 URL 的一组合并的规则,系统从列表头开始,检查规则直到找到第一个匹配项为止。注意,ASP.NET 的默认配置包含向所有用户授权的 <allow users="*"> 元素。如果没有匹配的规则,则将允许请求,除非另外拒绝。如果找到匹配项并且匹配项是 <deny> 元素,则它将返回 401 状态代码。应用程序或站点可以方便地配置位于其站点或应用程序顶层的 <deny users="*"> 元素以防止此行为。 
    如果是 <allow> 匹配,则模块不执行任何操作,允许进一步处理请求。 还有 <location> 标记,您可以使用该标记来指定特定的文件或目录,由该标记环绕(即在 <location> 和 </location> 标记之间)的那些设置将应用到该文件或目录。
    具体请见MSDN:ms-help://MS.MSDNQTR.2003FEB.2052/cpguide/html/cpconaspnetauthorization.htm
      

  3.   

    谢谢 badboy168,是这样,因为在一台服务器上我同时有几个.net系统,有一次我发现,由于一个系统的漏洞,有人上传了一个aspx文件,这个黑客文件主要在当前目录下运行后获取其它目录的相关信息,我的意思就是能不能通过对目录的限制对系统进行限制,这样,即使哪个系统再出现漏洞,再上传什么文件都只能在这个目录下运行,不能对其它目录进行操作。
      

  4.   

    比如说我有两个asp.net开发的系统 d:/test1/ d:/test2/
    只允许test1里的任何文件只能在test1内运行,不能对test2的目录进行任何操作。目录操作可以在硬盘上直接对目录进行安全权限,只允许某个用户访问,但我试了几次都不行。
      

  5.   

    类似于asp里的FSO组件,如果不限制,就可以读取硬盘上其它的信息造成信息泄露。
      

  6.   

    右击文件->属性->安全->添加  在弹出对话框中输入 "aspnet"  点确定
    然后对"ASP.NET 计算机帐户"分配权限
      

  7.   

    对ASP.NET用户进行增加写入、读取、执行权限
      

  8.   

    在同一个目录下,我放一个简单的t.htm,可以正常显示,但运行aspx就报错
    “服务器无法访问应用程序目录“D:\LISHER\”。该目录不存在或因为安全设置而无法访问。 ” 应该是asp.net的那个权限没有加到指定的那个用户名上。
      

  9.   

    删除目录权限列表里的everyone
    然后添加:ASPNET 或者 IIS_WPG 帐户,设置权限:可读(如果该目录里要上传文件或是放有数据库文件,那么还要设置权限:可修改)
      

  10.   

    我就是这样做的,不行,同一操作如果是asp文件就可以,再顶啊
      

  11.   

    需要在IIS管理里面设置,找到该网站-》属性-》目录安全性-》匿名安全 然后把IUser改成你要的用户名
      

  12.   

    谢谢老刀,都做了,因为我以前使用ASP时就做过,所以以上几方面都做过了,还是不行,除非加入evenone用户。这里的高手没有人做过吗?请赐教。谢谢