关于ASP.NET中独立页面设置身份认证等问题

大家都知道通过以下的方法实现对所有页面的身份认证要求:

<authentication mode="Forms">

<forms name=".OnLineWork" loginUrl="logoin.aspx" protection="All" timeout="60" />

</authentication>

<authorization>

<deny users="?" />

</authorization>

在设置窗体身份验证时设置个别页面不需要进行验证》一文中指出,如果要独立地配置某页面不需要身份认证,而保持原来其它页面需要身份认证的方法是在后来在Web.config的<configuration>中加入相应的页面配置。实际上,如果页面一多,这样配置或许会有点麻烦。

我们也遇到过类似的问题,发现ASP.NET有一个特性,任何目录下都允许有独立的web.config文件,而且每个目录下的web.config文件的优先级别高于根目录下的web.config文件,这样,我们只需要把所有不需要做身份认证的页面存放于一目录中,并在该目录下配置web.config文件不需要身份认证便可,和需要身份认证的页面/目录并存。

反之亦然:主目录不需要身份认证,一些页面需要身份认证,把需要身份认证的页面放到一目录中,然后配置该目录的web.config需要身份认证便可。