Beispiel #1
0
        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);
        }