public static HttpConfiguration Configure(IdentityManagerOptions options) { if (options == null) { throw new ArgumentNullException("idmConfig"); } var config = new HttpConfiguration(); config.MessageHandlers.Insert(0, new KatanaDependencyResolver()); config.MapHttpAttributeRoutes(); if (!options.DisableUserInterface) { config.Routes.MapHttpRoute(Constants.RouteNames.Home, "", new { controller = "Page", action = "Index" }); config.Routes.MapHttpRoute(Constants.RouteNames.OAuthFrameCallback, "frame", new { controller = "Page", action = "Frame" }); } config.SuppressDefaultHostAuthentication(); if (options.SecurityMode == SecurityMode.LocalMachine) { config.Filters.Add(new HostAuthenticationAttribute(Constants.LocalAuthenticationType)); } else { config.Filters.Add(new HostAuthenticationAttribute(Constants.BearerAuthenticationType)); } config.Filters.Add(new AuthorizeAttribute() { Roles = options.AdminRoleName }); config.Formatters.Remove(config.Formatters.XmlFormatter); config.Formatters.Remove(config.Formatters.FormUrlEncodedFormatter); config.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver(); //apiConfig.Services.Add(typeof(IExceptionLogger), new UserAdminExceptionLogger()); //#if DEBUG // apiConfig.Services.Add(typeof(IExceptionLogger), new TraceLogger()); //#endif config.Services.Add(typeof(IExceptionLogger), new LogProviderExceptionLogger()); return(config); }
public static IContainer Configure(IdentityManagerOptions config) { if (config == null) { throw new ArgumentNullException("config"); } var builder = new ContainerBuilder(); builder.RegisterInstance(config); builder.Register(config.Factory.IdentityManagerService); builder.RegisterApiControllers(typeof(AutofacConfig).Assembly); foreach (var registration in config.Factory.Registrations) { builder.Register(registration, registration.Name); } var container = builder.Build(); return(container); }