У меня есть веб-приложение ASP.NET 4.0 MVC, работающее на IIS 6.0 с пользовательским разделом ошибки webconfig:
<customErrors mode="On" redirectMode="ResponseRewrite" defaultRedirect="/Home/Error">
<error statusCode="403" redirect="/Home/Error"/>
<error statusCode="404" redirect="/Home/Error"/>
</customErrors>
и страницей error.aspx, которая выглядит следующим образом:
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<System.Web.Mvc.HandleErrorInfo>" %>
<%@ Import Namespace="System.Security.Cryptography" %>
<%@ Import Namespace="System.Threading" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
Error
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2>Error Processing your request.</h2>
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="Scripts" runat="server">
<script runat="server">
void Page_Load() {
byte[] delay = new byte[1];
RandomNumberGenerator prng = new RNGCryptoServiceProvider();
prng.GetBytes(delay);
Thread.Sleep((int)delay[0]);
IDisposable disposable = prng as IDisposable;
if (disposable != null) { disposable.Dispose(); }
}
</script>
</asp:Content>
Всякий раз, когда я включаю вышеупомянутый "redirectMode =" ResponseRewrite "" в разделе пользовательских ошибок webconfig, перенаправление на мою страницу пользовательских ошибок больше не работает, и я получаю ошибку страницы "Ошибка сервера в приложении" / "- ресурс не можетбыть найденным".Фактически действие контроллера также игнорируется.Когда я принимаю эту настройку, все работает как надо.Я пытаюсь использовать обходной путь Скотта Гу для перечисленной здесь уязвимости Asp.net: http://weblogs.asp.net/scottgu/archive/2010/09/18/important-asp-net-security-vulnerability.aspx
Любая помощь будет принята с благодарностью.Спасибо, Билли