2011-12-01 74 views
1

我在Google和这里发现了一些关于此问题的页面,但没有人似乎已经解决了我所看到的问题。我正在使用IIS 7.5。该网站使用Windows身份验证并访问用户必须登录的任何站点(在第一页加载时自动发生)。如果用户没有访问该网站,那么他们应该得到一个401或403,我试图为此创建一个简单的HTM自定义错误页面。错误页面位于设置了匿名身份验证的Errors文件夹中。.NET Windows身份验证自定义错误页面

如果我尝试加载网站并强制失败的身份验证,那么我只是得到标准的服务器错误页面,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> 

任何帮助将非常感谢!

回答

2

OK我已经设法解决这个问题,IIS 7.5似乎很高兴地忽略customErrors,所以httpErrors必须在system.webServer部分中使用。您似乎也必须声明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> 

我有一种感觉,这台整个网站使用非详细的错误页面,甚至在未包含在部分页面。有一个选项可以远程显示自定义错误并在本地显示详细错误,以便可能是一种可能的解决方法。

This webpage是我发现的最好的一个突出显示所有这些。

+2

链接已死亡。 对于未来的人们,您可以在这里找到该页面的快照http://web.archive.org/web/20121005053916/http://tedgustaf.com/zh/blog/2011/5/custom- 404和错误的页面换ASP净和静态文件/ –