hong

导航

配置ASP.NET身份验证支持

          不论是开放web站点,还是B/S应用程序,我们都需要对我们程序的部分资源进行保护,不被不速之客访问,要想访问受限资源,将会重定向到登录页面,要求输入账号,为实现上面的要求,我们通常会这样配置:

<authentication mode="Forms">

              
<forms name=".ASPXAUTH " loginUrl="login.aspx" protection="All" timeout="120"/>

         
</authentication>

         
<authorization>

              
<deny users="?"/>

         
</authorization>

 

(各个属性的含义,msdn有详细描述),这样,应用程序下所有的页面都将收到保护,但是我们大多数情况下只有求保护某些资源,而另一部分资源将是完全开放的(在门户站点中常常是这样的),我们把受保护的资源放在某个目录下,例如admin

我们只需设置system.web配置节如下即可:

<authentication mode="Forms">
            
<forms name=".ASPXADMINUSER" loginUrl="admin/adminlogin.aspx" protection="All" timeout="20" path="/" />
        
</authentication>
        
<authorization>
            
<allow users="?" />
        
</authorization>


再在configuration配置节下如下:

<location allowOverride="false" />
    
<location path="admin">
        
<system.web>
            
<authorization>
                
<allow users="admin"></allow>
                
<deny users="*"></deny>
            
</authorization>
        
</system.web>
    
</location>


这样admin目录下的所有页面将受到保护,注意ASP.NEThtml文件不作保护。

问题来了,如果admin下大部分页面开放,只对list.aspx保护怎么办。我们可以修改

<location path="admin">

<location path="admin/list.aspx">

按如上所述配置,将可以保护任意指定的资源,各配置属性在msdn中有说明,这里浪费时间了。

posted on 2005-11-25 16:39  hong  阅读(332)  评论(0编辑  收藏  举报