private static void ConfigureApis(HttpSelfHostConfiguration configuration)
        {
            // authentication
            var authConfig = AuthenticationConfig.CreateConfiguration();

            authConfig.ClaimsAuthenticationManager = new ConsultantsClaimsTransformer();
            configuration.MessageHandlers.Add(new AuthenticationHandler(authConfig));

            // authorization
            configuration.SetAuthorizationManager(new GlobalAuthorizationManager(DefaultPolicy.Deny));

            // CORS
            CorsConfig.RegisterGlobal(configuration);

            // dependency resolver for authorization manager
            configuration.DependencyResolver = new AuthorizationDependencyResolver();
        }
        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            // default API route
            routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
                );

            // API route with claims transformation
            routes.MapHttpRoute(
                name: "DefaultApiWithTransformation",
                routeTemplate: "api2/identity",
                defaults: new { controller = "Identity" },
                constraints: null,
                handler: new ClaimsTransformationHandler(new ConsultantsClaimsTransformer(), GlobalConfiguration.Configuration)
                );

            // API route with per-route authentication
            routes.MapHttpRoute(
                name: "DefaultApiPerRouteAuthN",
                routeTemplate: "api3/identity",
                defaults: new { controller = "Identity" },
                constraints: null,
                handler: new AuthenticationHandler(AuthenticationConfig.CreateConfiguration(), GlobalConfiguration.Configuration)
                );

            // default MVC route
            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
                );
        }
Ejemplo n.º 3
0
        public static void Register(HttpConfiguration config)
        {
            config.DependencyResolver = new BlueYonderResolver();

            config.Formatters.Add(new AtomFormatter());

            config.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always;
         
            AuthenticationConfiguration authenticationConfig = AuthenticationConfig.CreateConfiguration();

            config.Routes.MapHttpRoute(
                name: "callback",
                routeTemplate: "FederationCallback",
                defaults: new { Controller = "FederationCallback" });

            config.Routes.MapHttpRoute(
                name: "LocationWeatherApi",
                routeTemplate: "locations/{locationId}/weather",
                defaults: new
                {
                    controller = "locations",
                    action = "GetWeather"
                },
                constraints: new
                {
                    httpMethod = new HttpMethodConstraint(HttpMethod.Get)
                }
            );

            config.Routes.MapHttpRoute(
                name: "TravelerReservationsApi",
                routeTemplate: "travelers/{travelerId}/reservations",
                defaults: new
                {
                    controller = "reservations",
                    id = RouteParameter.Optional
                },
                constraints: null,
                handler: new AuthenticationHandler(authenticationConfig, GlobalConfiguration.Configuration));

            config.Routes.MapHttpRoute(
               name: "ReservationsApi",
               routeTemplate: "Reservations/{id}",
               defaults: new
               {
                   controller = "Reservations",
                   action = "GetReservation"
               },
               constraints: new
               {
                   httpMethod = new HttpMethodConstraint(HttpMethod.Get)
               },
               handler: new AuthenticationHandler(authenticationConfig, GlobalConfiguration.Configuration)
           );

            config.Routes.MapHttpRoute(
                    name: "DefaultApi",
                    routeTemplate: "{controller}/{id}",
                    defaults: new { id = RouteParameter.Optional },
                    constraints: null,
                    handler: new AuthenticationHandler(authenticationConfig, GlobalConfiguration.Configuration));

            config.Formatters.JsonFormatter.SerializerSettings.Converters.Add(
                new StringEnumConverter());
        }