2010-01-22 6 views
1

Я использую 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"))); 

Но если я пойду directy в /Order/CartAdd.ashx я никогда не войти в маршрут , Он переходит непосредственно к этому обработчику. И если я перейду в/Order/I получить ошибку 403.14.

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

ответ

1

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

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

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

+0

Работает отлично, но IgnoreRoute не работает. Но это делает: routes.Add (новый маршрут («default.aspx», новый StopRoutingHandler())); – Allrameest