遥望远方的天空

飞翔

导航

ASP.NET 2.0认证项的配置

在ASP.NET2.0中,如果根目录允许匿名用户访问,而根目录下的一个页面(如Info.aspx)必须要登录(假设登录页面为login.aspx)后才能访问,根目录下的web.config文件必须这样配置:

<?xml version="1.0"?>

<configuration>
 <appSettings>
 </appSettings>
 <connectionStrings>
 </connectionStrings>

  <system.web>
    <compilation debug="true"/>

    <!--<authentication mode="Windows"/>-->
    <authentication mode="Forms">
      <forms loginUrl="login.aspx" protection="All" path="/" timeout="30"/>
    </authentication>

    <authorization>

      <!--允许匿名-->
      <allow users="?"/>

    </authorization>

  </system.web>

  <location path="Info.aspx">
    <system.web>

      <!--认证项配置(在为一个单独页面指定认证信息时,authentication节只能从这个目录继承,不能单独设置)-->
      <!--
      <authentication mode="Forms">
        <forms name=".www.cnpp.info" loginUrl="login.aspx" protection="All" path="/" timeout="30"/>
      </authentication>
      -->

      <!--用户访问控制-->
      <authorization>

        <!--阻止匿名-->
        <deny users="?"/>

      </authorization>
    </system.web>
  </location>

 
</configuration>

 

也就是在需要认证的页面配置节中不能配置authentication项,只能在在根目录中配置authentication项,Info.aspx从根目录继承. 否则会出现这样的错误: "在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误的。如果在 IIS 中没有将虚拟目录配置为应用程序,则可能导致此错误 "

最后验证了一个是<authentication> <form  节只能出现在根站点或应用程序站点中

 

posted on 2007-03-27 21:07  空想者  阅读(179)  评论(0编辑  收藏  举报