Внутри моего каталога Controllers У меня есть два подкаталогов - FeaturesA и FeaturesBWeb Api маршрут фильтр подкаталога
FeaturesA
Service1Controller
Service2Controller
Service3Controller
FeaturesB
Service4Controller
Service5Controller
Service6Controller
Я хочу добавить два маршрута, так что я могу получить доступ к этим услугам по следующим адресам -
localhost/api/FeaturesA/....
и
localhost/api/FeaturesB/....
Я follwing установки маршрута
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.Routes.MapHttpRoute(
name: "FeaturesA",
routeTemplate: "api/FeaturesA/{controller}/{id}",
defaults: new { id = RouteParameter.Optional});
config.Routes.MapHttpRoute(
name: "FeaturesB",
routeTemplate: "api/FeaturesB/{controller}/{id}",
defaults: new { id = RouteParameter.Optional});
НО я могу получить доступ Service1 от localhost/api/FeaturesA/Service1
и localhost/api/FeaturesB/Service1
и даже localhost/api/Service1
Как настроить мои маршруты только позволит Service1 к доступ из localhost/api/FeaturesA/Service1
, то же самое относится и ко всем остальным контроллерам, то есть они должны только быть доступным из URL-адреса, который соответствует их контроллеру.
был еще один ответ на этот вопрос, который имел очень полезную информацию, может вкладчик пожалуйста перепечатывать этот ответ. – tom