.NET Windows身份验证自定义错误页

.NET Windows身份验证自定义错误页,.net,.net,我在谷歌和这里找到了一些关于这个问题的页面,但似乎没有一个页面解决了我看到的问题。我正在使用iis7.5。该网站使用windows身份验证并访问用户必须登录的任何网站(在加载第一页时自动发生)。如果用户没有访问该站点的权限,那么他们应该获得401或403,我正在尝试为此创建一个简单的htm自定义错误页面。错误页位于错误文件夹中,该文件夹上设置了匿名身份验证 如果我尝试加载站点并强制验证失败,那么我只会得到带有HTTP错误401的标准服务器错误页面,它看起来不像是在尝试加载错误页面。如果我尝试加载

我在谷歌和这里找到了一些关于这个问题的页面,但似乎没有一个页面解决了我看到的问题。我正在使用iis7.5。该网站使用windows身份验证并访问用户必须登录的任何网站(在加载第一页时自动发生)。如果用户没有访问该站点的权限,那么他们应该获得401或403,我正在尝试为此创建一个简单的htm自定义错误页面。错误页位于错误文件夹中,该文件夹上设置了匿名身份验证

如果我尝试加载站点并强制验证失败,那么我只会得到带有HTTP错误401的标准服务器错误页面,它看起来不像是在尝试加载错误页面。如果我尝试加载错误页面本身,那么效果很好

没有授权位,如果用户登录,则可以访问整个站点;如果用户无法进行身份验证,则只能访问错误页面。我已将以下部分添加到我的web.config:

  <customErrors mode="On" defaultRedirect="~/Errors/AuthenticationError.htm">
      <error statusCode="401" redirect="~/Errors/AuthenticationError.htm" />
      <error statusCode="403" redirect="~/Errors/AuthenticationError.htm" />
  </customErrors>


任何帮助都将不胜感激

好的,我已经设法解决了这个问题,IIS 7.5似乎很乐意忽略customErrors,因此必须在system.webServer部分使用httpErrors。您似乎还必须声明errorMode=“Custom”。我得到的代码块是:

<httpErrors errorMode="Custom" defaultResponseMode="File">
  <remove statusCode="401" subStatusCode="-1" />
  <remove statusCode="403" subStatusCode="-1" />
  <error statusCode="401" path="Errors\AuthenticationError.htm" />
  <error statusCode="403" path="Errors\AuthenticationError.htm" />
</httpErrors>

我有一种感觉,这会使整个站点使用非详细的错误页面,即使在本节未包含的页面上也是如此。有一个远程显示自定义错误和本地显示详细错误的选项,这可能是一个可行的解决方法


是我发现的最好的一个突出显示了这一切。

链接已失效。对于未来的用户,您可以在此处找到页面的快照