ASP.NET:禁用单个aspx页面的身份验证(自定义错误页面)?

Ric*_*tte 5 .net asp.net security authentication error-handling

我在IIS 6中使用自定义错误页面:

<customErrors redirectMode="ResponseRedirect" mode="On" defaultRedirect="Error2.aspx"/>
Run Code Online (Sandbox Code Playgroud)

我想禁用自定义错误页面的身份验证,因为引发的错误与身份验证模块有关,我不想进入无限循环,我想向用户显示一个干净的错误页面.我一直在尝试以下配置来做到这一点.

<location path="Error2.aspx">
 <system.web>
   <authentication mode="None"/>
   <authorization>
     <allow users="?"/>
     <allow users="*"/>
   </authorization>
 </system.web>
</location>
Run Code Online (Sandbox Code Playgroud)

我收到设置身份验证模式的行的System.Configuration.ConfigurationErrorsException.

在应用程序级别之外使用注册为allowDefinition ='MachineToApplication'的部分是错误的.此错误可能是由于未在IIS中将虚拟目录配置为应用程序引起的.

我已经验证应用程序的文件夹下的子目录中没有其他web.config文件.Applications文件夹在IIS中配置为应用程序,错误页面位于应用程序的根目录下.为IIS中的错误页面设置的文件权限包括匿名和Windows身份验证(我也尝试过匿名).

Ric*_*tte 1

我将自定义错误重定向模式更改为 rewriteResponse。通过这样做,不会为错误页面发出单独的请求,不会重新执行引发错误的身份验证模块等。

我可以想象这在某些场景中可能不够(也许是 MVC 框架?),但对于我的用例来说,这已经足够了。

现在,我将用我想出的解决方法来回答我自己的问题,除非其他人可以演示一种按照最初所述实际禁用身份验证的方法。