using Mono.Data.Sqlite; using Nancy; using Nancy.Authentication.Forms; using Nancy.Bootstrapper; using Nancy.Diagnostics; using Nancy.TinyIoc; using RequestPlex.Core; using RequestPlex.Core.SettingModels; using RequestPlex.Helpers; using RequestPlex.Store; using RequestPlex.Store.Repository; using FormsAuthentication = Nancy.Authentication.Forms.FormsAuthentication; namespace RequestPlex.UI { public class Bootstrapper : DefaultNancyBootstrapper { // The bootstrapper enables you to reconfigure the composition of the framework, // by overriding the various methods and properties. // For more information https://github.com/NancyFx/Nancy/wiki/Bootstrapper protected override void ConfigureRequestContainer(TinyIoCContainer container, NancyContext context) { container.Register(); container.Register(new DbConfiguration(new SqliteFactory())); container.Register(); container.Register(); container.Register, SettingsServiceV2>(); container.Register, SettingsServiceV2>(); container.Register, GenericRepository>(); base.ConfigureRequestContainer(container, context); } protected override void ApplicationStartup(TinyIoCContainer container, IPipelines pipelines) { StaticConfiguration.DisableErrorTraces = false; base.ApplicationStartup(container, pipelines); // Enable forms auth var formsAuthConfiguration = new FormsAuthenticationConfiguration { RedirectUrl = "~/login", UserMapper = container.Resolve() }; FormsAuthentication.Enable(pipelines, formsAuthConfiguration); } protected override DiagnosticsConfiguration DiagnosticsConfiguration => new DiagnosticsConfiguration { Password = @"password" }; } }