Как заблокировать доступ к файлам при использовании System.Web.Routing.UrlRoutingModule?

Я использую System.Web.Routing.UrlRoutingModule.

С этим я пишу:

routes.Add(new Route(@"cart/add", new RouteHandler("~/Order/CartAdd.ashx")));
routes.Add(new Route(@"cart/delete", new RouteHandler("~/Order/CartDelete.ashx")));
...

И у меня также есть один маршрут под названием:

routes.Add(new Route(@"{*url}", new RouteHandler("~/Error/PageNotFound.ashx")));

Но если я сразу перейду к /Order/CartAdd.ashx, я никогда не войду в маршрут. Это идет непосредственно к тому обработчику. И если я иду в / Order / я получаю ошибку 403.14.

Как мне вместо этого поймать эти URL с помощью маршрутизации?

1 ответ

Решение

В вашем коде регистрации маршрута вы можете написать что-то вроде этого..

    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.RouteExistingFiles = true;
        routes.IgnoreRoute("default.aspx");
        [...]

Который должен форсировать запросы файлов через ваши правила маршрутизации.

Другие вопросы по тегам