表单身份验证和自定义错误

时间:2014-12-31 06:47:08

标签: asp.net forms-authentication custom-errors

我有使用表单身份验证的应用程序。它在根网站配置文件中有拒绝标记。

 <authorization>
    <deny users="?" />
 </authorization>

应用程序文件结构有CSS和JS文件夹。现在,当我尝试访问CSS和JS文件夹(https://domainname/CSS)时,它会将我重定向到登录页面。这可确保站点中存在目录。我希望在这种情况下显示自定义错误页面。

此外,当我尝试访问https://domainname/bin网址时,它会将我重定向到HTTP 404错误。

如何在两种情况下显示相同的自定义错误页面?

2 个答案:

答案 0 :(得分:0)

如果您使用了表单身份验证,则任何未经授权的请求都将重定向到您在loginUrl表单身份验证中指定的页面

<forms loginUrl="~/Account/Login.aspx" timeout="2880" />

但对于404或500或其他任何错误页面,您可以将页面配置为在发生错误时显示。将此添加到web.config以配置错误页面

<customErrors defaultRedirect="Error.aspx">
  <error statusCode="404" redirect="404.aspx"/>
  <error statusCode="500" redirect="500.aspx"/>
</customErrors>

答案 1 :(得分:0)

您可以在Global.asax.cs

中的某个应用程序事件中捕获未经授权的请求
protected void Application_AuthenticateRequest(Object sender, 
                                                    EventArgs e)
{
string url = HttpContext.Current.Request.Url.AbsoluteUri;
 if (!Request.IsAuthenticated || url.Contains("Check Your URL Here")) 
 Response.Redirect("AccessDenied.aspx"); 
}