配置ASP.NET身份验证支持
不论是开放web站点,还是B/S应用程序,我们都需要对我们程序的部分资源进行保护,不被不速之客访问,要想访问受限资源,将会重定向到登录页面,要求输入账号,为实现上面的要求,我们通常会这样配置:
 <authentication mode="Forms">
<authentication mode="Forms">
 <forms name=".ASPXAUTH " loginUrl="login.aspx" protection="All" timeout="120"/>
              <forms name=".ASPXAUTH " loginUrl="login.aspx" protection="All" timeout="120"/>
 </authentication>
         </authentication>
 <authorization>
         <authorization>
 <deny users="?"/>
              <deny users="?"/>
 </authorization>
         </authorization>
(各个属性的含义,msdn有详细描述),这样,应用程序下所有的页面都将收到保护,但是我们大多数情况下只有求保护某些资源,而另一部分资源将是完全开放的(在门户站点中常常是这样的),我们把受保护的资源放在某个目录下,例如admin。
我们只需设置system.web配置节如下即可:
 <authentication mode="Forms">
<authentication mode="Forms"> <forms name=".ASPXADMINUSER" loginUrl="admin/adminlogin.aspx" protection="All" timeout="20" path="/" />
            <forms name=".ASPXADMINUSER" loginUrl="admin/adminlogin.aspx" protection="All" timeout="20" path="/" /> </authentication>
        </authentication> <authorization>
        <authorization> <allow users="?" />
            <allow users="?" /> </authorization>
        </authorization>
再在configuration配置节下如下:
 <location allowOverride="false" />
<location allowOverride="false" /> <location path="admin">
    <location path="admin"> <system.web>
        <system.web> <authorization>
            <authorization> <allow users="admin"></allow>
                <allow users="admin"></allow> <deny users="*"></deny>
                <deny users="*"></deny> </authorization>
            </authorization> </system.web>
        </system.web> </location>
    </location>
这样admin目录下的所有页面将受到保护,注意ASP.NET对html文件不作保护。
问题来了,如果admin下大部分页面开放,只对list.aspx保护怎么办。我们可以修改
<location path="admin">为
<location path="admin/list.aspx">
按如上所述配置,将可以保护任意指定的资源,各配置属性在msdn中有说明,这里浪费时间了。 
                    
                 
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号