/// <summary>Configures the given container.</summary> /// /// <param name="container">The container.</param> public override void Configure(Container container) { var appSettings = new AppSettings(); container.Register<IRedisClientsManager>(c => new PooledRedisClientManager( new string[] { appSettings.GetString("Redis.Host") ?? "localhost" })); container.Register<IMessageService>(c => new RedisMqServer(c.Resolve<IRedisClientsManager>())); container.Register<IMessageFactory>(c => c.Resolve<IMessageService>().MessageFactory); var mqServer = (RedisMqServer)container.Resolve<IMessageService>(); mqServer.RegisterHandler<AnyTestMq>(ServiceController.ExecuteMessage); mqServer.RegisterHandler<PostTestMq>(ServiceController.ExecuteMessage); mqServer.Start(); }
private void ConfigureAuth(Container container) { //Enable and register existing services you want this host to make use of. //Look in Web.config for examples on how to configure your oauth providers, e.g. oauth.facebook.AppId, etc. var appSettings = new AppSettings(); //Register all Authentication methods you want to enable for this web app. Plugins.Add(new AuthFeature( () => new CustomUserSession(), //Use your own typed Custom UserSession type new IAuthProvider[] { new CredentialsAuthProvider(), //HTML Form post of UserName/Password credentials new TwitterAuthProvider(appSettings), //Sign-in with Twitter new FacebookAuthProvider(appSettings), //Sign-in with Facebook new DigestAuthProvider(appSettings), //Sign-in with Digest Auth new BasicAuthProvider(), //Sign-in with Basic Auth new GoogleOpenIdOAuthProvider(appSettings), //Sign-in with Google OpenId new YahooOpenIdOAuthProvider(appSettings), //Sign-in with Yahoo OpenId new OpenIdOAuthProvider(appSettings), //Sign-in with Custom OpenId new GoogleOAuth2Provider(appSettings), //Sign-in with Google OAuth2 Provider new LinkedInOAuth2Provider(appSettings), //Sign-in with LinkedIn OAuth2 Provider })); #if HTTP_LISTENER //Required for DotNetOpenAuth in HttpListener OpenIdOAuthProvider.OpenIdApplicationStore = new InMemoryOpenIdApplicationStore(); #endif //Provide service for new users to register so they can login with supplied credentials. Plugins.Add(new RegistrationFeature()); //override the default registration validation with your own custom implementation container.RegisterAs<CustomRegistrationValidator, IValidator<Registration>>(); //Store User Data into the referenced SqlServer database container.Register<IUserAuthRepository>(c => new OrmLiteAuthRepository(c.Resolve<IDbConnectionFactory>())); //Use OrmLite DB Connection to persist the UserAuth and AuthProvider info var authRepo = (OrmLiteAuthRepository)container.Resolve<IUserAuthRepository>(); //If using and RDBMS to persist UserAuth, we must create required tables if (appSettings.Get("RecreateAuthTables", false)) authRepo.DropAndReCreateTables(); //Drop and re-create all Auth and registration tables else authRepo.CreateMissingTables(); //Create only the missing tables Plugins.Add(new RequestLogsFeature()); }
public void SetUp() { try { tests = new OAuthUserSessionTests(); var inMemoryRepo = new InMemoryAuthRepository(); inMemoryRepo.Clear(); userAuthRepositorys.Add(inMemoryRepo); var appSettings = new AppSettings(); var redisRepo = new RedisAuthRepository(new BasicRedisClientManager(new string[] { appSettings.GetString("Redis.Host") ?? "localhost" })); redisRepo.Clear(); userAuthRepositorys.Add(redisRepo); if (OAuthUserSessionTestsBase.UseSqlServer) { var connStr = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\App_Data\auth.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"; var sqlServerFactory = new OrmLiteConnectionFactory(connStr, SqlServerOrmLiteDialectProvider.Instance); var sqlServerRepo = new OrmLiteAuthRepository(sqlServerFactory); sqlServerRepo.DropAndReCreateTables(); } else { var sqliteInMemoryRepo = new OrmLiteAuthRepository(dbFactory); dbFactory.Run(db => { db.CreateTable<UserAuth>(true); db.CreateTable<UserOAuthProvider>(true); }); sqliteInMemoryRepo.Clear(); userAuthRepositorys.Add(sqliteInMemoryRepo); var sqliteDbFactory = new OrmLiteConnectionFactory( "~/App_Data/auth.sqlite".MapProjectPath()); var sqliteDbRepo = new OrmLiteAuthRepository(sqliteDbFactory); sqliteDbRepo.CreateMissingTables(); userAuthRepositorys.Add(sqliteDbRepo); } } catch (Exception ex) { Console.WriteLine(ex.Message); throw; } }
/// <summary>Configures the given container.</summary> /// /// <param name="container">The container.</param> public override void Configure(Container container) { Plugins.Add(new RazorFormat()); container.Register(new DataSource()); container.Register<IDbConnectionFactory>( new OrmLiteConnectionFactory(":memory:", false, //ConnectionString in Web.Config SqliteDialect.Provider) { ConnectionFilter = x => new ProfiledDbConnection(x, Profiler.Current) }); using (var db = container.Resolve<IDbConnectionFactory>().Open()) { db.CreateTableIfNotExists<Rockstar>(); db.Insert(Rockstar.SeedData); } JsConfig.EmitCamelCaseNames = true; //Register Typed Config some services might need to access var appSettings = new AppSettings(); //Register a external dependency-free container.Register<ICacheClient>(new MemoryCacheClient()); //Configure an alt. distributed persistent cache that survives AppDomain restarts. e.g Redis //container.Register<IRedisClientsManager>(c => new PooledRedisClientManager("localhost:6379")); //Enable Authentication an Registration ConfigureAuth(container); //Create your own custom User table var dbFactory = container.Resolve<IDbConnectionFactory>(); dbFactory.Run(db => db.DropAndCreateTable<UserTable>()); SetConfig(new EndpointHostConfig { DebugMode = true, }); }
//Configure NServiceKit Authentication and CustomUserSession private void ConfigureAuth(Funq.Container container) { Routes .Add<Registration>("/register"); var appSettings = new AppSettings(); Plugins.Add(new AuthFeature(() => new CustomUserSession(), new IAuthProvider[] { new CredentialsAuthProvider(appSettings), new FacebookAuthProvider(appSettings), new TwitterAuthProvider(appSettings), new GoogleOpenIdOAuthProvider(appSettings), new OpenIdOAuthProvider(appSettings), new DigestAuthProvider(appSettings), new BasicAuthProvider(appSettings), })); Plugins.Add(new RegistrationFeature()); container.Register<IUserAuthRepository>(c => new OrmLiteAuthRepository(c.Resolve<IDbConnectionFactory>())); var authRepo = (OrmLiteAuthRepository)container.Resolve<IUserAuthRepository>(); if (new AppSettings().Get("RecreateTables", true)) authRepo.DropAndReCreateTables(); else authRepo.CreateMissingTables(); }