Нет, анонимные типы не могут реализовать интерфейс. От руководство по программированию C# :
Анонимные типы являются типами классов, которые состоят из одного или нескольких общедоступных свойств только для чтения. Никакие другие виды участников класса, такие как методы или события не позволяются. Анонимный тип не может быть брошен ни к какому интерфейсу или типу за исключением объекта.
Если у вас есть доступ к коду, почему бы просто не проверить «+» в конце и не удалить его?
Согласно 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
, и, если он найден (или просто всегда), посмотрите текущий.
вы можете запустить ISAPI с перезаписью URL, например IIRF .