Хорошо, наконец-то разобрался. Я попытаюсь объяснить это в простой форме, в надежде, что однажды это поможет кому-то другому.
Несколько вещей, которые нужно запомнить, во-первых, это приложение не из MVC, чисто веб-формы.
В моем Global.ascx есть метод:
void RegisterRoutes(RouteCollection routes)
{
routes.Add(new Route("{resource}.axd/{*pathInfo}", new StopRoutingHandler()));
routes.Add(new Route("{service}.asmx/{*pathInfo}", new StopRoutingHandler()));
routes.Add(new Route("*.psd/{*pathinfo}", new StopRoutingHandler()));
routes.Add(new Route("*.js/{*pathinfo}", new StopRoutingHandler()));
routes.Add(new Route("*.jpg/{*pathinfo}", new StopRoutingHandler()));
routes.Add(new Route("*.gif/{*pathinfo}", new StopRoutingHandler()));
routes.Add(new Route("{resource}.css/{*pathinfo}", new StopRoutingHandler()));
routes.RouteExistingFiles = false;
Data.DataContext context = new Data.DataContext();
var AppRoutes = (from r in context.SomeRouteTable
select r).ToList();
foreach (var AppRoute in AppRoutes)
{
routes.MapPageRoute(AppRoute.RouteName,
AppRoute.RouteUrl,
AppRoute.PhysicalFile, false);
// The important part is the "false" above. It is the
// CheckPhysicalUrlAccess parameter.
}
}
Теперь в файле web.config необходимо добавить запись:
<location path="landing"><system.web><authorization><allow users="*"/></authorization></system.web></location>
В пустом Application_Start внутри файла Global.asax просто вызовите функцию RegisterRoutes:
this.RegisterRoutes(RouteTable.Routes);
Перезагрузите сервер, и готово. Теперь ваш маршрут для страницы входа будет работать, однако все остальные ваши маршруты будут безопасными. Если вам нужно предоставить другой маршрут, все, что вам нужно сделать, это добавить базовый путь к вашему разделу авторизации system.web с помощью allow users = "*".
Еще одна вещь, которая, как мы надеемся, поможет другим, - это возможность извлекать из обработчика маршрута все ваши javascript (js), изображения (psd, jpg, gif), действительно любые статические файлы. По всему Интернету были объяснены .axd и .asmx, однако я никогда не мог найти способ сделать это игнорирующим для других статических типов файлов при работе с маршрутизацией в модели веб-форм.
Я надеюсь, что это поможет кому-то еще и сэкономит им время, которое я потратил на отслеживание всего этого и выполнение всего модульного тестирования самостоятельно.
Наслаждайтесь людьми.