分散验证

介绍一下分散管理的方式,即通过多个web.config来配置文件的访问权限。

首先,web.config的作用我们应该知道两点:

1、web.config的设置将作用于所在目录及所在目录下的所有子文件下的资源——一般指.net资源,如aspx、ashx、ascx等文件,对.html、js、css等则不起作用,当然,不同的iis版本下有所不同,在此不做讨论。

2、子目录下的web.config文件将覆盖从父目录继承下来的设置。

接下来,我们新建一个测试项目,项目资源如下图:

 上图中的Admin文件夹是受保护的,只有通过省份验证的用户可以访问,所以,我们在根目录下的web.config配置文件中做如下配置:

    <authentication mode="Forms"><!--Forms验证-->
      <forms loginUrl="~/Admin/Login.aspx" name=".ASPX"></forms><!--未通过则转向Login.aspx登录页-->
    </authentication>
    <authorization><!--授权:对于此目录及此目录以下的所有资源-->
      <allow users="*"/><!--允许所有用户访问-->
    </authorization>

上面配置的信息是,根目录及根目录下的所有资源允许匿名用户访问,这显然不符合我们的要求,但是,我们根据上面2点认知中的第2点知道,可以通过重写web.config配置来覆盖父目录提供的规则,因此,我们可以在Admin文件夹中新建一个web.config文件来配置Admin文件夹的访问授权规则,如下:

<configuration>
  <system.web>
    <authorization><!--授权-->
      <deny users="?"/><!--阻止匿名用户访问-->
    </authorization>
  </system.web>
</configuration>

如此以下,我们就通过“分散管理”的方式配置好了项目的访问规则。

posted @ 2013-05-29 15:07  勇仔X  阅读(246)  评论(0编辑  收藏  举报