У меня есть приложение ASP.NET MVC 5, но это не имеет значения, если это MVC 3, 4 или нет. У меня установлен модуль NWebSec 3.0 с включенной проверкой перенаправления. У меня есть метод Application_Error (даже если у меня не было одна проблема та же!):Как перенаправить на контроллер ошибок после NWebsec.Core.Exceptions.RedirectValidationException
protected void Application_Error(object sender, EventArgs e)
{
HttpContext httpContext = ((MvcApplication)sender).Context;
Exception exception = Server.GetLastError();
if(exception is NWebsec.Core.Exceptions.RedirectValidationException)
{
Trace.WriteLine("How to redirect from here to ErrorController/Index?");
}
else
{
Trace.WriteLine("How to redirect from here to ErrorController/Index?");
Herer два метода испытаний в HomeControllers:
public ActionResult Redirect()
{
return new RedirectResult("http://www.deshow.net/d/file/travel/2010-04/bing-landscape-wallpaper-845-2.jpg");
}
public ActionResult ParseError()
{
int.Parse("test");
return View();
}
И у меня есть стандартный разделяемую представление об ошибке и
<customErrors mode="On" defaultRedirect="~/Error" />
Включено.
Я ожидаю, что независимо от ошибки я буду перенаправлен на просмотр ошибок. Но это не так, когда я вызываю метод Redirect. Как-то, когда возникает ошибка переадресации, стандартный механизм «пользовательских ошибок» обходит, и стандартное представление ошибки не отображается.
Еще одна деталь заключается в том, что после удара ParseError() приложение Application_Error не попадает, и отображается стандартное представление «пользовательских ошибок», но при попадании в Redirect() отсутствует «пользовательские ошибки», но желтый экран смерти. Это заставляет меня думать, что, может быть, я неправильно понимаю «конвейер» http-модулей.
NWebSec пересекается с плохой перенаправлением и выбрасывает NWebsec.Core.Exceptions.RedirectValidationException. Я полагаю, что это так, потому что NwebSec зарегистрирован как модуль
<system.webServer>
<modules>
...
<add name="NWebsecHttpHeaderSecurityModule" type="NWebsec.Modules.HttpHeaderSecurityModule, NWebsec, Version=3.2.0.0, Culture=neutral, PublicKeyToken=3613da5f958908a1" />
...
</modules>
</system.webServer>
Я прочитал the - e - e - e - e -s ответы уже, но я не могу понять это. Можете ли вы указать мне ответ на такую проблему или предоставить примерную реализацию?
Благодарим за отзыв! Но моя цель - настроить обработку исключений из действительно опасных перенаправлений. Я не хочу, чтобы белый список опасности, которая не находится на том же хосте - как вы можете видеть из примера, я намеренно перенаправляю на «http://www.deshow.net/d/file/travel/2010-04 /bing-landscape-wallpaper-845-2.jpg "только ради сателлитов. Когда обнаружено опасное перенаправление, NWebSec выбрасывает это исключение, и я получаю его в global.asax. Мне нужно затем перенаправить на метод действия RedirectError() ErrorController. –