Проблема с URL, который заканчивается %20

Нет, анонимные типы не могут реализовать интерфейс. От руководство по программированию C# :

Анонимные типы являются типами классов, которые состоят из одного или нескольких общедоступных свойств только для чтения. Никакие другие виды участников класса, такие как методы или события не позволяются. Анонимный тип не может быть брошен ни к какому интерфейсу или типу за исключением объекта.

14
задан Svante 14 July 2009 в 17:28
поделиться

3 ответа

Если у вас есть доступ к коду, почему бы просто не проверить «+» в конце и не удалить его?

0
ответ дан 1 December 2019 в 12:39
поделиться

Согласно some , это находится в System.Web.dll :

internal static void CheckSuspiciousPhysicalPath(string physicalPath)
{
  if (((physicalPath != null) && (physicalPath.Length > 0))
    && (Path.GetFullPath(physicalPath) != physicalPath))
  {
    throw new HttpException(0x194, "");
  }
}

Я думаю, вы не можете это изменить, но не можете отключить его в настройках IIS ? Конечно, это также отключило бы все другие проверки ...: - (

Или напишите какой-нибудь фильтр ISAPI, который запускается перед приведенным выше кодом? Согласно Изящная обработка взлома URI, считается, что написать собственный модуль легко в ASP.NET .

Или создайте свою страницу с ошибкой . На этой странице (как предложено в ссылке на взлом URI выше) найдите конкретный текст в exception.TargetSite. Назовите , например CheckSuspiciousPhysicalPath , и, если он найден (или просто всегда), посмотрите текущий.

1
ответ дан 1 December 2019 в 12:39
поделиться

вы можете запустить ISAPI с перезаписью URL, например IIRF .

1
ответ дан 1 December 2019 в 12:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: