/// <summary> /// Application specific configuration /// This method should initialize any Plugins or IOC dependencies used by your web services /// </summary> public override void Configure(Container container) { SetConfig(new HostConfig { DebugMode = AppSettings.Get("DebugMode", false), WebHostPhysicalPath = MapProjectPath("~/wwwroot"), AddRedirectParamsToQueryString = true, UseCamelCase = true, }); Plugins.Add(new TemplatePagesFeature()); this.Plugins.Add(new PostmanFeature()); this.Plugins.Add(new CorsFeature()); Plugins.Add(new AuthFeature(() => new AuthUserSession(), new IAuthProvider[] { //new BasicAuthProvider(), //Sign-in with HTTP Basic Auth new CustomCredentialsAuthProvider(), //HTML Form post of UserName/Password credentials })); Plugins.Add(new RegistrationFeature()); container.Register <ICacheClient>(new MemoryCacheClient()); var userRep = new InMemoryAuthRepository(); container.Register <IAuthRepository>(userRep); }
public void Configure(IAppHost appHost) { var AppSettings = appHost.AppSettings; appHost.Plugins.Add(new AuthFeature(() => new AuthUserSession(), new IAuthProvider[] { //new BasicAuthProvider(), //Sign-in with HTTP Basic Auth new JwtAuthProvider(AppSettings) { AuthKey = AesUtils.CreateKey(), RequireSecureConnection = false, }, new CredentialsAuthProvider(), //HTML Form post of UserName/Password credentials new FacebookAuthProvider(AppSettings), new TwitterAuthProvider(AppSettings), })); appHost.Plugins.Add(new RegistrationFeature()); var userRep = new InMemoryAuthRepository(); appHost.Register <IAuthRepository>(userRep); var authRepo = userRep; var newAdmin = new UserAuth { Email = "*****@*****.**", DisplayName = "Admin User" }; var user = authRepo.CreateUserAuth(newAdmin, "p@55wOrd"); authRepo.AssignRoles(user, new List <string> { "Admin" }); }
private void SetupAuthentication(Container container) { // We use the [Authenticate] attribute to control access to creation of short URLs. // Therefore we have to set up an IAuthProvider even if the administrator doesn't want authentication. var appSettings = ConfigurationManager.AppSettings; var authProviders = new List <IAuthProvider>(); string htmlRedirect = null; if (appSettings.UseCredentials()) { var adminPassword = appSettings["AdminPassword"]; authProviders.Add(new CredentialsAuthProvider(AppSettings)); //HTML Form post of UserName/Password credentials container.Register <ICacheClient>(new MemoryCacheClient()); var userRep = new InMemoryAuthRepository(); userRep.CreateUserAuth(new UserAuth { UserName = "******" }, adminPassword); container.Register <IUserAuthRepository>(userRep); } if (appSettings.UseAad()) { htmlRedirect = "/auth/aad"; authProviders.Add(new AadAuthProvider(AppSettings)); } if (!appSettings.UseAad() && !appSettings.UseCredentials()) { authProviders.Add(new AlwaysAuthorizedAuthProvider()); } Plugins.Add(new AuthFeature(() => new AuthUserSession(), authProviders.ToArray(), htmlRedirect)); }
public override void Configure(Funq.Container container) { // Use authorization this.Plugins.Add(new AuthFeature( () => new UserSession(), new IAuthProvider[] { new CredentialsAuthProvider() })); // Use in-memory cache for session objects container.Register <ICacheClient>(new MemoryCacheClient()); // Make sessions expire after 10 seconds this.GlobalResponseFilters.Add((req, res, dto) => { var session = req.GetSession(); if (session != null) { req.SaveSession(session, TimeSpan.FromSeconds(10)); } }); // Use in-memory user repo with two hard-coded users var userRep = new InMemoryAuthRepository(); var user = userRep.CreateUserAuth(); user.UserName = "******"; userRep.CreateUserAuth(user, "alice1"); user = userRep.CreateUserAuth(); user.UserName = "******"; userRep.CreateUserAuth(user, "bob2"); container.Register <IUserAuthRepository>(userRep); }
public override void Configure(Container container) { Plugins.Add(new AuthFeature(() => new CustomUserSession(), new AuthProvider[] { new CredentialsAuthProvider(), //HTML Form post of UserName/Password credentials new BasicAuthProvider(), //Sign-in with Basic Auth })); container.Register<ICacheClient>(new MemoryCacheClient()); var userRep = new InMemoryAuthRepository(); container.Register<IUserAuthRepository>(userRep); string hash; string salt; new SaltedHash().GetHashAndSaltString("test1", out hash, out salt); userRep.CreateUserAuth(new UserAuth { Id = 1, DisplayName = "DisplayName", Email = "*****@*****.**", UserName = "******", FirstName = "FirstName", LastName = "LastName", PasswordHash = hash, Salt = salt, }, "test1"); }
public override void Configure(Funq.Container container) { //DbRegistration var connectionString = "";// ConfigurationManager.ConnectionStrings["Bd"].ConnectionString; container.Register <IDbConnectionFactory>(new OrmLiteConnectionFactory(connectionString, PostgreSqlDialect.Provider)); //IoC //IoC //container.RegisterAutoWired<Negocio>(); //Autentication Plugins.Add(new AuthFeature(() => new AuthUserSession(), new IAuthProvider[] { new BasicAuthProvider() })); container.Register <ICacheClient>(new MemoryCacheClient()); var userRepository = new InMemoryAuthRepository(); container.Register <IUserAuthRepository>(userRepository); string hash; string salt; var usuario = "A1b2c3d4"; //ConfigurationManager.AppSettings["user"].ToString(); var pass = "******"; //ConfigurationManager.AppSettings["pass"].ToString(); new SaltedHash().GetHashAndSaltString(pass, out hash, out salt); userRepository.CreateUserAuth(new UserAuth() { DisplayName = "Admin", Email = "*****@*****.**", FirstName = "pepe", LastName = "otro", UserName = usuario, PasswordHash = hash, Salt = salt }, pass); //Routes // .Add<ServiceStatus>("/ServiceStatus") // .Add<ServiceStatus>("/ServiceStatus/{A}"); }
public override void Configure(Funq.Container container) { Routes .Add<Hello>("/hello") .Add<Hello>("/hello/{Name}"); helloService = container.Resolve<HelloService>(); AuthFeature authFeature = new AuthFeature(() => new AuthUserSession(), new IAuthProvider[] {new BasicAuthProvider(), new TwitterAuthProvider(new AppSettings()),}); //authFeature.HtmlRedirect Plugins.Add(authFeature); MemoryCacheClient memoryCacheClient = new MemoryCacheClient(); container.Register<ICacheClient>(memoryCacheClient); var userRepository = new InMemoryAuthRepository(); container.Register<IUserAuthRepository>(userRepository); string hash; string salt; string password = "******"; new SaltedHash().GetHashAndSaltString(password, out hash, out salt); userRepository.CreateUserAuth( new UserAuth { Id = 1, DisplayName = "JoeUser", Email = "*****@*****.**", UserName = "******", FirstName = "Joe", LastName = "User", PasswordHash = hash, Salt = salt, }, password); //IHttpResult authenticationRequired = helloService.AuthenticationRequired(); // ???? }
public override void Configure(Container container) { Plugins.Add(new AuthFeature(() => new AuthUserSession(), new IAuthProvider[] { new BasicAuthProvider() })); Plugins.Add(new RegistrationFeature()); container.Register <ICacheClient>(new MemoryCacheClient()); var userRepo = new InMemoryAuthRepository(); container.Register <IUserAuthRepository>(userRepo); new SaltedHash().GetHashAndSaltString("pass", out string hash, out string salt); userRepo.CreateUserAuth(new UserAuth { Id = 1, DisplayName = "Toby", UserName = "******", FirstName = "Tobias", LastName = "K. N", PasswordHash = hash, Salt = salt, Roles = new List <string> { RoleNames.Admin }, //Permissions = new List<string> { "GetCafe" }, }, "pass"); }
/// <summary> /// Application specific configuration /// This method should initialize any IoC resources utilized by your web service classes. /// </summary> /// <param name="container"></param> public override void Configure(Container container) { Plugins.Add(new AuthFeature(() => new AuthUserSession(), new IAuthProvider[] { new CustomAuthentication(), })); container.Register<ICacheClient>(new MemoryCacheClient()); var userRepository = new InMemoryAuthRepository(); container.Register<IUserAuthRepository>(userRepository); }
// Configure your AppHost with the necessary configuration and dependencies your App needs public override void Configure(Container container) { Plugins.Add(new TemplatePagesFeature()); // enable server-side rendering, see: http://templates.servicestack.net SetConfig(new HostConfig { AddRedirectParamsToQueryString = true, DebugMode = AppSettings.Get(nameof(HostConfig.DebugMode), false) }); Plugins.Add(new AuthFeature(() => new AuthUserSession(), new IAuthProvider[] { new BasicAuthProvider(), //Sign-in with HTTP Basic Auth new CredentialsAuthProvider(), //HTML Form post of UserName/Password credentials })); Plugins.Add(new RegistrationFeature()); container.Register <ICacheClient>(new MemoryCacheClient()); var userRep = new InMemoryAuthRepository(); container.Register <IUserAuthRepository>(userRep); var authRepo = userRep; var newAdmin = new UserAuth(); newAdmin.Email = "*****@*****.**"; var user = authRepo.CreateUserAuth(newAdmin, "!Abc1234"); authRepo.AssignRoles(user, new List <string> { "Admin" }); }
public override void Configure(Container container) { var unityContainer = new UnityContainer() .AddNewExtension<BuildTracking>() .AddNewExtension<LogCreation>(); var userRepository = new InMemoryAuthRepository(); this.Plugins.Add(new AuthFeature(() => new AuthUserSession(), new IAuthProvider[] { new BasicAuthProvider()})); this.Plugins.Add(new RegistrationFeature()); unityContainer.RegisterInstance<ICacheClient>(new MemoryCacheClient()); unityContainer.RegisterInstance<IUserAuthRepository>(userRepository); unityContainer.RegisterInstance<IDbConnectionFactory>(new OrmLiteConnectionFactory("~/Database/SmartDom.db".MapServerPath(), SqliteOrmLiteDialectProvider.Instance)); unityContainer.RegisterType<IOrmWrapper, OrmWrapper>(); unityContainer.RegisterType<IConfigurationRepository, AppConfigRepository>(); unityContainer.RegisterType<MediaAdapterAbstractFactory<SerialPort>, SerialPortAdapterFactory>(new ContainerControlledLifetimeManager()); unityContainer.RegisterType<ModbusMasterAbstractFactory<SerialPort>, RtuSerialModbusMasterFactory>(new ContainerControlledLifetimeManager()); unityContainer.RegisterType<IGenericRepository<Device>, DeviceDbRepository>(new ContainerControlledLifetimeManager(), new InjectionMethod("Initialize")); unityContainer.RegisterType<IDeviceAccessLayer, SerialAccessLayer>(new ContainerControlledLifetimeManager()); unityContainer.RegisterType<IMessageDecoder, MessageDecoder>(); unityContainer.RegisterType<IDeviceManager, DeviceManager>(); var unityAdapter = new UnityContainerAdapter(unityContainer); container.Adapter = unityAdapter; AddUser(userRepository); }
public override void Configure(Container container) { var authRepo = new InMemoryAuthRepository(); container.Register <IAuthRepository>(c => authRepo); authRepo.CreateUserAuth(new UserAuth { UserName = "******", Email = "*****@*****.**", DisplayName = "ServiceStack User", Roles = new List <string> { "Member" }, }, "test"); Plugins.Add(new AuthFeature(() => new AuthUserSession(), new IAuthProvider[] { new CredentialsAuthProvider(AppSettings), new NetCoreIdentityAuthProvider(AppSettings) { PopulateSessionFilter = (session, principal, req) => { //Example of populating ServiceStack Session Roles for EF Identity DB var userManager = req.TryResolve <UserManager <ApplicationUser> >(); var user = userManager.FindByIdAsync(session.Id).Result; var roles = userManager.GetRolesAsync(user).Result; session.Roles = roles.ToList(); } }, })); SetConfig(new HostConfig { AdminAuthSecret = "secret" }); }
public void Install(Container container) { var userRepo = new InMemoryAuthRepository(); container.Register<IUserAuthRepository>(userRepo); //HACK: Add default users var users = new[] { new User("Admin", "AdminPassword"), new User("cyberzed", "cyberzed") }; foreach (var user in users) { string hash; string salt; new SaltedHash().GetHashAndSaltString(user.Password, out hash, out salt); userRepo.CreateUserAuth( new UserAuth { DisplayName = user.Username, UserName = user.Username, PasswordHash = hash, Salt = salt }, user.Password); } }
public override void Configure(Container container) { //ASP.NET MVC integration ControllerBuilder.Current.SetControllerFactory(new FunqControllerFactory(container)); SetConfig(CreateEndpointHostConfig()); JsConfig.EmitCamelCaseNames = true; Plugins.Add(new ValidationFeature()); container.RegisterValidators(typeof(AppHost).Assembly); container.Register<ICacheClient>(new MemoryCacheClient()); container.RegisterAutoWired<BicyleRepository>(); Plugins.Add(new AuthFeature( () => new AuthUserSession(), new IAuthProvider[] { new CredentialsAuthProvider() })); var userAuthRepository = new InMemoryAuthRepository(); userAuthRepository.CreateUserAuth(new UserAuth { Email = "*****@*****.**", DisplayName= "Admin User"}, "admin"); container.Register<IUserAuthRepository>(userAuthRepository); }
public override void Configure(Container container) { Plugins.Add(new AuthFeature(() => new CustomUserSession(), new AuthProvider[] { new CredentialsAuthProvider(), //HTML Form post of UserName/Password credentials new BasicAuthProvider(), //Sign-in with Basic Auth })); container.Register <ICacheClient>(new MemoryCacheClient()); var userRep = new InMemoryAuthRepository(); container.Register <IUserAuthRepository>(userRep); string hash; string salt; new SaltedHash().GetHashAndSaltString("test1", out hash, out salt); userRep.CreateUserAuth(new UserAuth { Id = 1, DisplayName = "DisplayName", Email = "*****@*****.**", UserName = "******", FirstName = "FirstName", LastName = "LastName", PasswordHash = hash, Salt = salt, }, "test1"); }
/// <summary> /// Application specific configuration /// This method should initialize any IoC resources utilized by your web service classes. /// </summary> public override void Configure(Container container) { //Config examples //this.Plugins.Add(new PostmanFeature()); //this.Plugins.Add(new CorsFeature()); Plugins.Add(new CorsFeature()); Plugins.Add(new SessionFeature()); Plugins.Add(new RegistrationFeature()); Plugins.Add(new AuthFeature(() => new AuthUserSession(), new IAuthProvider[] { new BasicAuthProvider() })); var userRepo = new InMemoryAuthRepository(); container.Register <IAuthRepository>(userRepo); container.Register <ICacheClient>(new MemoryCacheClient()); container.Register <IDbConnectionFactory>(c => new OrmLiteConnectionFactory( "Data Source=.; Initial Catalog=VotingApp; Integrated Security=True", SqlServerDialect.Provider )); GlobalRequestFilters.Add((req, res, dto) => req.ResponseContentType = MimeTypes.Json); }
public override void Configure(Container container) { SetConfig(new HostConfig { WebHostUrl = webHostUrl, DebugMode = true }); Plugins.Add(new AuthFeature(() => new CustomUserSession(), new IAuthProvider[] { //Www-Authenticate should contain basic auth, therefore register this provider first new BasicAuthProvider(), //Sign-in with Basic Auth new CredentialsAuthProvider(), //HTML Form post of UserName/Password credentials new CustomAuthProvider() }, "~/" + LoginUrl)); container.Register(new MemoryCacheClient()); userRep = new InMemoryAuthRepository(); container.Register <IAuthRepository>(userRep); if (configureFn != null) { configureFn(container); } CreateUser(1, UserName, null, Password, new List <string> { "TheRole" }, new List <string> { "ThePermission" }); CreateUser(2, UserNameWithSessionRedirect, null, PasswordForSessionRedirect); CreateUser(3, null, EmailBasedUsername, PasswordForEmailBasedAccount); }
/* Uncomment to enable ServiceStack Authentication and CustomUserSession * private void ConfigureAuth(Funq.Container container) * { * var appSettings = new AppSettings(); * * //Default route: /auth/{provider} * Plugins.Add(new AuthFeature(() => new CustomUserSession(), * new IAuthProvider[] { * new CredentialsAuthProvider(appSettings), * new FacebookAuthProvider(appSettings), * new TwitterAuthProvider(appSettings), * new BasicAuthProvider(appSettings), * })); * * //Default route: /register * Plugins.Add(new RegistrationFeature()); * * //Requires ConnectionString configured in Web.Config * var connectionString = ConfigurationManager.ConnectionStrings["AppDb"].ConnectionString; * container.Register<IDbConnectionFactory>(c => * new OrmLiteConnectionFactory(connectionString, SqlServerDialect.Provider)); * * container.Register<IUserAuthRepository>(c => * new OrmLiteAuthRepository(c.Resolve<IDbConnectionFactory>())); * * var authRepo = (OrmLiteAuthRepository)container.Resolve<IUserAuthRepository>(); * authRepo.CreateMissingTables(); * } */ private void ConfigureAuth(Funq.Container container) { var appSettings = new AppSettings(); //Default route: /auth/{provider} Plugins.Add(new AuthFeature(() => new CustomUserSession(), new IAuthProvider[] { new BasicAuthProvider(appSettings), })); var userRepository = new InMemoryAuthRepository(); container.Register <IUserAuthRepository>(userRepository); string hash; string salt; new SaltedHash().GetHashAndSaltString("password", out hash, out salt); userRepository.CreateUserAuth(new UserAuth { Id = 1, DisplayName = "JoeUser", Email = "*****@*****.**", UserName = "******", FirstName = "Joe", LastName = "User", PasswordHash = hash, Salt = salt }, "password"); }
public static void Init(Container container, string connectionString) { var dbConnectionFactory = new OrmLiteConnectionFactory(connectionString, SqlServerDialect.Provider); container.Register<IDbConnectionFactory>(dbConnectionFactory); container.Register<ICacheClient>(new MemoryCacheClient()); //user auth testing var userRepo = new InMemoryAuthRepository(); string hash; string salt; new SaltedHash().GetHashAndSaltString("ssapi", out hash, out salt); userRepo.CreateUserAuth(new UserAuth { Id = 1, DisplayName = "Api User", Email = "*****@*****.**", UserName = "******", FirstName = "Api", LastName = "User", PasswordHash = hash, Salt = salt }, "ssapi"); container.Register<IUserAuthRepository>(userRepo); }
public override void Configure(Funq.Container container) { //DbRegistration var connectionString = "";// ConfigurationManager.ConnectionStrings["Bd"].ConnectionString; container.Register<IDbConnectionFactory>(new OrmLiteConnectionFactory(connectionString, PostgreSqlDialect.Provider)); //IoC //IoC //container.RegisterAutoWired<Negocio>(); //Autentication Plugins.Add(new AuthFeature(() => new AuthUserSession(), new IAuthProvider[] { new BasicAuthProvider() })); container.Register<ICacheClient>(new MemoryCacheClient()); var userRepository = new InMemoryAuthRepository(); container.Register<IUserAuthRepository>(userRepository); string hash; string salt; var usuario = "A1b2c3d4"; //ConfigurationManager.AppSettings["user"].ToString(); var pass = "******";//ConfigurationManager.AppSettings["pass"].ToString(); new SaltedHash().GetHashAndSaltString(pass, out hash, out salt); userRepository.CreateUserAuth(new UserAuth() { DisplayName = "Admin", Email = "*****@*****.**", FirstName = "pepe", LastName = "otro", UserName = usuario, PasswordHash = hash, Salt = salt }, pass); //Routes // .Add<ServiceStatus>("/ServiceStatus") // .Add<ServiceStatus>("/ServiceStatus/{A}"); }
public override void Configure(Container container) { SetConfig(new HostConfig { WebHostUrl = webHostUrl, DebugMode = true }); Plugins.Add(new AuthFeature(() => new CustomUserSession(), GetAuthProviders(), "~/" + AuthTests.LoginUrl) { RegisterPlugins = { new WebSudoFeature() } }); container.Register(new MemoryCacheClient()); userRep = new InMemoryAuthRepository(); container.Register <IAuthRepository>(userRep); if (configureFn != null) { configureFn(container); } CreateUser(1, AuthTests.UserName, null, AuthTests.Password, new List <string> { "TheRole" }, new List <string> { "ThePermission" }); CreateUser(2, AuthTests.UserNameWithSessionRedirect, null, AuthTests.PasswordForSessionRedirect); CreateUser(3, null, AuthTests.EmailBasedUsername, AuthTests.PasswordForEmailBasedAccount); }
public override IUserAuthRepository CreateAuthRepo() { var inMemoryRepo = new InMemoryAuthRepository(); InitTest(inMemoryRepo); return(inMemoryRepo); }
public override void Configure(Funq.Container container) { JsConfig.EmitCamelCaseNames = true; JsConfig.IncludeNullValues = true; JsConfig.DateHandler = JsonDateHandler.ISO8601; LogManager.LogFactory = new DebugLogFactory(); SetConfig(new EndpointHostConfig { WsdlServiceNamespace = "", AllowJsonpRequests = true, DebugMode = true, EnableFeatures = Feature.All.Remove(GetDisabledFeatures()) }); //Authentication (see: https://github.com/ServiceStack/ServiceStack/blob/master/tests/ServiceStack.WebHost.Endpoints.Tests/AuthTests.cs) Plugins.Add(new AuthFeature(() => new AuthUserSession(), new IAuthProvider[] { new BasicAuthProvider(), //Sign-in with Basic Auth }) { HtmlRedirect = null /* prevent redirect to login page, make the user login using basic auth prompt */ }); userRepository = new InMemoryAuthRepository(); container.Register <IUserAuthRepository>(userRepository); CreateUser(userRepository, 1, UserName, "DisplayName", null, Password); //NEW: Enable the validation feature and scans the service assembly for validators Plugins.Add(new ValidationFeature()); container.RegisterValidators(typeof(Northwind.Data.Services.CategoryService).Assembly); //Caching container.Register <ICacheClient>(new MemoryCacheClient()); //Repositories container.RegisterAs <CategoryServiceRepository, ICategoryServiceRepository>(); container.RegisterAs <CustomerServiceRepository, ICustomerServiceRepository>(); container.RegisterAs <CustomerCustomerDemoServiceRepository, ICustomerCustomerDemoServiceRepository>(); container.RegisterAs <CustomerDemographicServiceRepository, ICustomerDemographicServiceRepository>(); container.RegisterAs <EmployeeServiceRepository, IEmployeeServiceRepository>(); container.RegisterAs <EmployeeTerritoryServiceRepository, IEmployeeTerritoryServiceRepository>(); container.RegisterAs <OrderServiceRepository, IOrderServiceRepository>(); container.RegisterAs <OrderDetailServiceRepository, IOrderDetailServiceRepository>(); container.RegisterAs <ProductServiceRepository, IProductServiceRepository>(); container.RegisterAs <RegionServiceRepository, IRegionServiceRepository>(); container.RegisterAs <ShipperServiceRepository, IShipperServiceRepository>(); container.RegisterAs <SupplierServiceRepository, ISupplierServiceRepository>(); container.RegisterAs <TerritoryServiceRepository, ITerritoryServiceRepository>(); //DataAccess / OrmLite var connectionString = ConfigurationManager.ConnectionStrings["ApiDbConnectionString"].ConnectionString; container.Register <IDataAccessAdapterFactory>(c => new DataAccessAdapterFactory(connectionString)); container.Register <IDbConnectionFactory>(c => new OrmLiteConnectionFactory(connectionString, true, new SqlServerOrmLiteDialectProvider())); }
public override void Configure(Container container) { var appSettings = new AppSettings(); container.Register(InfusionBootstrapper.Instance.Container.Resolve <MdsRepository>()); JsConfig.DateHandler = DateHandler.ISO8601; Plugins.Add(new SwaggerFeature()); Plugins.Add(new CorsFeature()); Plugins.Add(new PostmanFeature()); var yammerProvider = new YammerAuthProvider(appSettings); //{ // RedirectUrl = "http://192.168.1.154:2223", // CallbackUrl = "http://192.168.1.154:2223/auth/yammer", // ClientId = "rwKNTVw2idIza5XShMiQw", // ClientSecret = "9e9X1kpJx96mA44nsBY6flCfsnyN7fgE7s9bmQVo", //}; Plugins.Add(new AuthFeature(() => new AuthUserSession(), new IAuthProvider[] { yammerProvider })); //Plugins.Add(new RegistrationFeature()); container.Register <ICacheClient>(new MemoryCacheClient()); var userRep = new InMemoryAuthRepository(); container.Register <IUserAuthRepository>(userRep); var disableFeatures = Feature.Jsv | Feature.Soap | Feature.Soap11 | Feature.Soap12 | Feature.Metadata; SetConfig(new HostConfig { EnableFeatures = Feature.All.Remove(disableFeatures), DefaultContentType = MimeTypes.Json, MetadataRedirectPath = null, DefaultRedirectPath = null }); this.PreRequestFilters.Add((req, resp) => { if (req.OperationName == typeof(MdsOrderRequest).Name && req.QueryString != null && req.QueryString.Count > 0) { resp.StatusCode = (int)HttpStatusCode.BadRequest; resp.StatusDescription = "Query strings not allowed for this operation."; resp.EndRequest(); } }); }
private void ConfigureAuth(Container container) { Plugins.Add(new AuthFeature(() => new AuthUserSession(), new IAuthProvider[] { new CredentialsAuthProvider() })); Plugins.Add(new RegistrationFeature()); container.Register<ICacheClient>(new MemoryCacheClient()); var userRep = new InMemoryAuthRepository(); userRep.CreateUserAuth(new UserAuth() { UserName = "******", Id = 1 }, "bar"); container.Register<IUserAuthRepository>(userRep); }
// http://localhost:5000/auth/[email protected]&&password=!Abc1234 // Configure your AppHost with the necessary configuration and dependencies your App needs public override void Configure(Container container) { Plugins.Add(new TemplatePagesFeature()); // enable server-side rendering, see: http://templates.servicestack.net if (Config.DebugMode) { Plugins.Add(new HotReloadFeature()); } Plugins.Add(new RazorFormat()); // enable ServiceStack.Razor SetConfig(new HostConfig { AddRedirectParamsToQueryString = true, DebugMode = AppSettings.Get(nameof(HostConfig.DebugMode), false) }); Plugins.Add(new AuthFeature(() => new AuthUserSession(), new IAuthProvider[] { //new BasicAuthProvider(), //Sign-in with HTTP Basic Auth new JwtAuthProvider(AppSettings) { AuthKey = AesUtils.CreateKey(), RequireSecureConnection = false, }, new CredentialsAuthProvider(), //HTML Form post of UserName/Password credentials new FacebookAuthProvider(AppSettings), new TwitterAuthProvider(AppSettings), })); Plugins.Add(new RegistrationFeature()); Plugins.Add(new OpenApiFeature { UseBearerSecurity = true, }); container.Register <ICacheClient>(new MemoryCacheClient()); var userRep = new InMemoryAuthRepository(); container.Register <IAuthRepository>(userRep); var authRepo = userRep; var newAdmin = new UserAuth { Email = "*****@*****.**" }; var user = authRepo.CreateUserAuth(newAdmin, "test"); authRepo.AssignRoles(user, new List <string> { "Admin" }); }
public override void Configure(Container container) { JsConfig.DateHandler = DateHandler.ISO8601; //------------------------------------------------------------- // Configure AuthFeature // // ** Re-wire explicit routes to use an '/api' prefix Plugins.Add(new AuthFeature(() => new CustomUserSession(), new IAuthProvider[] { new BasicAuthProvider(), new CredentialsAuthProvider(), new JwtAuthProvider() { RequireSecureConnection = false, HashAlgorithm = "RS256", PrivateKeyXml = GetPrivateKeyXml() } }) { HtmlRedirect = "/auth/sign-in", DeleteSessionCookiesOnLogout = true, GenerateNewSessionCookiesOnAuthentication = true, ServiceRoutes = new Dictionary <Type, string[]> { { typeof(AuthenticateService), new [] { "/api/auth", "/api/auth/{provider}" } } }, IncludeAssignRoleServices = false }); Plugins.Add(new RegistrationFeature() { AtRestPath = "/api/auth/register" }); container.Register <ICacheClient>(new MemoryCacheClient()); var userRep = new InMemoryAuthRepository(); container.Register <IUserAuthRepository>(userRep); //------------------------------------------------------------- // Create Test Accounts CreateAccountIfNotExists(container, "admin", "Administrator", "/images/avatar1-bw.png", "Admin"); CreateAccountIfNotExists(container, "guest", "Guest", "/images/avatar2-bw.png"); //------------------------------------------------------------- // Add CORS Plugins.Add(new CorsFeature(allowCredentials: true, allowedHeaders: "Content-Type, Allow, Authorization")); }
private void SetupDependencies() { // Ubuntu VM running redis var redisConnection = AppSettings.GetString("RedisConnectionString"); Container.Register<IRedisClientsManager>(new BasicRedisClientManager(redisConnection)); // Setup basic auth Container.Register<ICacheClient>(new MemoryCacheClient()); var userRep = new InMemoryAuthRepository(); Container.Register<IUserAuthRepository>(userRep); RegisterUsers(userRep); }
protected virtual async Task SetUp() { AppHost = new BasicAppHost().Init(); AppHost.Container.Register <IDbConnectionFactory>(new OrmLiteConnectionFactory(":memory:", SqliteDialect.Provider)); AuthRepo = new InMemoryAuthRepository(); AppHost.Container.Register <IAuthRepository>(AuthRepo); AppHost.Container.Register <IAuthSession>(c => CreateUserSession()); CreateUser(1, UserName, null, Password, new List <string> { "Admin" }); await Task.CompletedTask; }
public override void Configure(Container container) { Plugins.Add(new AuthFeature(() => new AuthUserSession(), new IAuthProvider[] { //new BasicAuthProvider(), //Sign-in with HTTP Basic Auth new MyCredentialsAuthProvider() //HTML Form post of UserName/Password credentials })); Plugins.Add(new RegistrationFeature()); container.Register<ICacheClient>(new MemoryCacheClient()); var userRep = new InMemoryAuthRepository(); container.Register<IUserAuthRepository>(userRep); }
private void SetupDependencies() { // Ubuntu VM running redis var redisConnection = AppSettings.GetString("RedisConnectionString"); Container.Register <IRedisClientsManager>(new BasicRedisClientManager(redisConnection)); // Setup basic auth Container.Register <ICacheClient>(new MemoryCacheClient()); var userRep = new InMemoryAuthRepository(); Container.Register <IUserAuthRepository>(userRep); RegisterUsers(userRep); }
public override void Configure(Funq.Container container) { // Add credentials provider and our custom session Plugins.Add(new AuthFeature(() => new MyServiceUserSession(), new IAuthProvider[] { new CredentialsAuthProvider() })); // Add registered users to the system var userRep = new InMemoryAuthRepository(); foreach(Model.User user in Db.Users) userRep.CreateUserAuth(new UserAuth { Id = user.Id, UserName = user.Username }, user.Password); container.Register<IUserAuthRepository>(userRep); SetConfig(new HostConfig { DebugMode = true, }); }
public override void Configure(Container container) { Plugins.Add(new AuthFeature(() => new AuthUserSession(), new IAuthProvider[] { //new BasicAuthProvider(), //Sign-in with HTTP Basic Auth new MyCredentialsAuthProvider() //HTML Form post of UserName/Password credentials })); Plugins.Add(new RegistrationFeature()); container.Register <ICacheClient>(new MemoryCacheClient()); var userRep = new InMemoryAuthRepository(); container.Register <IUserAuthRepository>(userRep); }
public static void Configure(ServiceStackHost appHost, Container container) { var appSettings = new AppSettings(); var auth = new AuthFeature(() => new CustomUserSession(), new IAuthProvider[] { new CustomBasicAuthProvider(), new CredentialsAuthProvider(appSettings) { SessionExpiry = TimeSpan.FromMinutes(30) } }, "/login") { GenerateNewSessionCookiesOnAuthentication = false, }; appHost.Plugins.Add(auth); IUserAuthRepository authRepository = new InMemoryAuthRepository(); ICacheClient cacheClient = new MemoryCacheClient(); var testUser = authRepository.CreateUserAuth(new UserAuth { Email = "*****@*****.**" }, "a"); //IoC registrations container.Register(cacheClient); container.Register(authRepository); var hostConfig = new HostConfig { #if DEBUG || STAGING || UAT DebugMode = true, #endif AppendUtf8CharsetOnContentTypes = new HashSet <string> { MimeTypes.Csv }, }; appHost.SetConfig(hostConfig); }
// https://github.com/ServiceStack/ServiceStack/wiki/Authentication-and-authorization private void ConfigureAuth(Funq.Container container) { Plugins.Add(new AuthFeature(null, new IAuthProvider[] { new CredentialsAuthProvider() })); container.Register<ICacheClient>(new MemoryCacheClient()); var userRep = new InMemoryAuthRepository(); container.Register<IUserAuthRepository>(userRep); #if DEBUG CreateUser(userRep, 1, "admin", "*****@*****.**", "password", null, null); #endif //The IUserAuthRepository is used to store the user credentials etc. //Implement this interface to adjust it to your application's data storage. }
public void SetUp() { try { tests = new OAuthUserSessionTests(); appHost = new BasicAppHost().Init(); var inMemoryRepo = new InMemoryAuthRepository(); inMemoryRepo.Clear(); userAuthRepositorys.Add(inMemoryRepo); var appSettings = new AppSettings(); var redisRepo = new RedisAuthRepository(new BasicRedisClientManager(new[] { 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); sqliteInMemoryRepo.InitSchema(); sqliteInMemoryRepo.Clear(); userAuthRepositorys.Add(sqliteInMemoryRepo); var sqliteDbFactory = new OrmLiteConnectionFactory( "~/App_Data/auth.sqlite".MapProjectPath()); var sqliteDbRepo = new OrmLiteAuthRepository(sqliteDbFactory); sqliteDbRepo.InitSchema(); userAuthRepositorys.Add(sqliteDbRepo); } } catch (Exception ex) { Console.WriteLine(ex.Message); throw; } }
public override void Configure(Container container) { Plugins.Add(new RazorFormat()); //Works but recommend handling 404 at end of .NET Core pipeline //this.CustomErrorHttpHandlers[HttpStatusCode.NotFound] = new RazorHandler("/notfound"); this.CustomErrorHttpHandlers[HttpStatusCode.Unauthorized] = new RazorHandler("/login"); Plugins.Add(new AutoQueryFeature { MaxLimit = 100 }); Plugins.Add(new AuthFeature(() => new AuthUserSession(), new IAuthProvider[] { new BasicAuthProvider(), //Sign-in with HTTP Basic Auth new CredentialsAuthProvider(), //HTML Form post of UserName/Password credentials }) { IncludeAssignRoleServices = false, IncludeRegistrationService = false, GenerateNewSessionCookiesOnAuthentication = true, DeleteSessionCookiesOnLogout = true }); Plugins.Add(new RegistrationFeature()); container.Register <ICacheClient>(new MemoryCacheClient()); var userRep = new InMemoryAuthRepository(); container.Register <IUserAuthRepository>(userRep); userRep.CreateUserAuth(new UserAuth { FirstName = "Jonathan", LastName = "Someone", DisplayName = "Jonno", Email = "*****@*****.**" }, "Secure1"); SetConfig(new HostConfig { HandlerFactoryPath = "api", ApiVersion = "1" }); }
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); using (var db = dbFactory.Open()) { db.DropAndCreateTable <UserAuth>(); db.DropAndCreateTable <UserAuthDetails>(); } 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; } }
// https://github.com/ServiceStack/ServiceStack/wiki/Authentication-and-authorization private void ConfigureAuth(Funq.Container container) { Plugins.Add(new AuthFeature(null, new IAuthProvider[] { new CredentialsAuthProvider() })); container.Register <ICacheClient>(new MemoryCacheClient()); var userRep = new InMemoryAuthRepository(); container.Register <IUserAuthRepository>(userRep); #if DEBUG CreateUser(userRep, 1, "admin", "*****@*****.**", "password", null, null); #endif //The IUserAuthRepository is used to store the user credentials etc. //Implement this interface to adjust it to your application's data storage. }
public override void Configure(Funq.Container container) { Plugins.Add(new AuthFeature(() => new AuthUserSession(), new IAuthProvider[] { new BasicAuthProvider(), new CredentialsAuthProvider(), })); Plugins.Add(new RegistrationFeature()); container.Register<ICacheClient>(new MemoryCacheClient { FlushOnDispose = false }); var userRep = new InMemoryAuthRepository(); userRep.CreateUserAuth( new UserAuth { UserName = "******", Roles = new List<string> { "Admin" }, }, "deathstar"); container.Register<IUserAuthRepository>(userRep); }
/// <summary> /// Application specific configuration /// This method should initialize any IoC resources utilized by your web service classes. /// </summary> public override void Configure(Container container) { var myDocStore = new DocumentStore { Urls = new[] { "http://localhost:8080" }, Database = databaseName, }; myDocStore.Initialize(); // Is UserManager database created? if (myDocStore.Maintenance.Server.Send( new GetDatabaseNamesOperation(0, 200)) .Count(x => x.EqualsIgnoreCase(databaseName)) == 0) { // No, then let's create it. myDocStore.Maintenance.Server.Send( new CreateDatabaseOperation( new DatabaseRecord(databaseName) )); } container.AddSingleton <IDocumentStore>(implementationInstance: myDocStore); this.Plugins.Add(new AuthFeature( sessionFactory: () => new AuthUserSession(), authProviders: new IAuthProvider[] { new UserDataCredentialsAuthProvider() })); this.Plugins.Add(new RegistrationFeature()); this.Plugins.Add(new RequestLogsFeature()); this.Plugins.Add(new SwaggerFeature()); this.Plugins.Add(new RazorFormat()); container.Register <ICacheClient>(new MemoryCacheClient()); var userRep = new InMemoryAuthRepository(); container.Register <IAuthRepository>(userRep); container.RegisterAs <LogAuthEvents, IAuthEvents>(); JsConfig <DateTime> .SerializeFn = time => new DateTime(time.Ticks, DateTimeKind.Local).ToString("o"); JsConfig <DateTime?> .SerializeFn = time => time != null ? new DateTime(time.Value.Ticks, DateTimeKind.Local).ToString("o") : null; JsConfig.DateHandler = DateHandler.ISO8601; }
public void SetUp() { try { tests = new OAuthUserSessionTests(); var inMemoryRepo = new InMemoryAuthRepository(); inMemoryRepo.Clear(); userAuthRepositorys.Add(inMemoryRepo); var redisRepo = new RedisAuthRepository(new BasicRedisClientManager()); redisRepo.Clear(); userAuthRepositorys.Add(redisRepo); if (OAuthUserSessionTests.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.Exec(dbCmd => { dbCmd.CreateTable<UserAuth>(true); dbCmd.CreateTable<UserOAuthProvider>(true); }); sqliteInMemoryRepo.Clear(); userAuthRepositorys.Add(sqliteInMemoryRepo); var sqliteDbFactory = new OrmLiteConnectionFactory( "~/App_Data/auth.sqlite".MapAbsolutePath()); var sqliteDbRepo = new OrmLiteAuthRepository(sqliteDbFactory); sqliteDbRepo.CreateMissingTables(); userAuthRepositorys.Add(sqliteDbRepo); } } catch (Exception ex) { Console.WriteLine(ex.Message); throw; } }
public override void Configure(Funq.Container container) { // Add credentials provider and our custom session Plugins.Add(new AuthFeature(() => new MyServiceUserSession(), new IAuthProvider[] { new CredentialsAuthProvider() })); // Add registered users to the system var userRep = new InMemoryAuthRepository(); foreach (Model.User user in Db.Users) { userRep.CreateUserAuth(new UserAuth { Id = user.Id, UserName = user.Username }, user.Password); } container.Register <IUserAuthRepository>(userRep); SetConfig(new HostConfig { DebugMode = true, }); }
private static void RegisterUsers(InMemoryAuthRepository userRep) { // Create a series of fake users var usernames = new[] { "Cheetara", "Panthro", "Tygra" }; foreach (var username in usernames) { // Create fake users if (userRep.GetUserAuthByUserName(username) == null) { userRep.CreateUserAuth(new UserAuth { UserName = username, FirstName = $"{username}_test", LastName = "ThunderCat", Roles = new List<string> { "test" } }, "password"); } } }
public override void Configure(Funq.Container container) { Plugins.Add(new RazorFormat()); Plugins.Add(new AuthFeature(() => new AuthUserSession(), new IAuthProvider[] { new CredentialsAuthProvider(), //HTML Form post of UserName/Password credentials })); var userRep = new InMemoryAuthRepository(); container.Register<IUserAuthRepository>(userRep); UserAuth userDemo = new UserAuth { UserName = "******" }; userRep.CreateUserAuth(userDemo, "demo"); }
/// <summary> /// Application specific configuration /// This method should initialize any IoC resources utilized by your web service classes. /// </summary> /// <param name="container"></param> public override void Configure(Container container) { //Config examples //this.Plugins.Add(new PostmanFeature()); //this.Plugins.Add(new CorsFeature()); this.Plugins.Add(new AuthFeature(() => new AuthUserSession(), new IAuthProvider[] { new BasicAuthProvider(), new CredentialsAuthProvider(), })); this.Plugins.Add(new RegistrationFeature()); var userRepository = new InMemoryAuthRepository(); container.Register <IAuthRepository>(userRepository); container.Register <ICacheClient>(new MemoryCacheClient()); this.Plugins.Add(new RazorFormat()); }
public override void Configure(Container container) { Func<string, string> localize = s => HostContext.AppHost.ResolveLocalizedString(s, null); Plugins.Add(new SessionFeature()); SetConfig(new HostConfig(){AllowSessionIdsInHttpParams = true}); var appSettings = new AppSettings(); var authFeature = new AuthFeature(() => new AuthUserSession(), new IAuthProvider[] { new CredentialsAuthProvider{ SkipPasswordVerificationForInProcessRequests = true }, new FacebookAuthProvider(appSettings) }) { HtmlRedirect = null }; authFeature.IncludeAssignRoleServices = false; Plugins.Add(new ServerEventsFeature() { LimitToAuthenticatedUsers = true, NotifyChannelOfSubscriptions = false, }); Plugins.Add(new RegistrationFeature()); Plugins.Add(authFeature); var authRepo = new InMemoryAuthRepository(); container.Register<IUserAuthRepository>(authRepo); authRepo.CreateUserAuth(new UserAuth() { UserName = "******" }, "testpassword"); }
private static void RegisterUsers(InMemoryAuthRepository userRep) { // Create a series of fake users var usernames = new[] { "Cheetara", "Panthro", "Tygra" }; foreach (var username in usernames) { // Create fake users if (userRep.GetUserAuthByUserName(username) == null) { userRep.CreateUserAuth(new UserAuth { UserName = username, FirstName = $"{username}_test", LastName = "ThunderCat", Roles = new List <string> { "test" } }, "password"); } } }
/// <summary> /// Application specific configuration /// This method should initialize any IoC resources utilized by your web service classes. /// </summary> /// <param name="container"></param> public override void Configure(Container container) { //Config examples //this.Plugins.Add(new PostmanFeature()); //this.Plugins.Add(new CorsFeature()); SetConfig(new HostConfig { DebugMode = AppSettings.Get("DebugMode", false), AddRedirectParamsToQueryString = true }); this.Plugins.Add(new RazorFormat()); this.Plugins.Add(new DiscourseFeature { LocalAuthUrl = "/", DiscourseServerUrl = "http://discourse.layoric.org", DiscourseSsoSecret = "a_test_secret" }); var inMemoryAuthRepo = new InMemoryAuthRepository(); this.Register <IAuthRepository>(inMemoryAuthRepo); this.Plugins.Add(new AuthFeature(() => new AuthUserSession(), new IAuthProvider[] { new CustomAuth() } )); container.Register <ICacheClient>(new MemoryCacheClient()); inMemoryAuthRepo.CreateUserAuth( new UserAuth { UserName = "******", DisplayName = "mythz", Email = "*****@*****.**" }, "Discourse1"); inMemoryAuthRepo.CreateUserAuth( new UserAuth { UserName = "******", DisplayName = "dreid15", Email = "*****@*****.**" }, "Discourse1"); }
public override void Configure(Container container) { SetConfig(new HostConfig { WebHostUrl = _webHostUrl }); Plugins.Add(new AuthFeature(() => new CustomUserSession(), new IAuthProvider[] { //Www-Authenticate should contain basic auth, therefore register this provider first new BasicAuthProvider(), //Sign-in with Basic Auth new CredentialsAuthProvider(), //HTML Form post of UserName/Password credentials new CustomAuthProvider() }, "~/" + SystemConstants.LoginUrl)); container.Register(new MemoryCacheClient()); _userRep = new InMemoryAuthRepository(); container.Register<IAuthRepository>(_userRep); if (_configureFn != null) { _configureFn(container); } CreateUser(1, SystemConstants.UserName, null, SystemConstants.Password, new List<string> { "TheRole" }, new List<string> { "ThePermission" }); CreateUser(2, SystemConstants.UserNameWithSessionRedirect, null, SystemConstants.PasswordForSessionRedirect); CreateUser(3, null, SystemConstants.EmailBasedUsername, SystemConstants.PasswordForEmailBasedAccount); }
public override void Configure(Container container) { Plugins.Add(new AuthFeature(() => new AuthUserSession(), new IAuthProvider[] {new BasicAuthProvider()})); container.Register<ICacheClient>(new MemoryCacheClient()); var userRepository = new InMemoryAuthRepository(); container.Register<IUserAuthRepository>(userRepository); //adding test user string hash; string salt; new SaltedHash().GetHashAndSaltString("password", out hash, out salt); //This is how we would add it from a registration page. userRepository.CreateUserAuth( new UserAuth { Id = 1, UserName = "******", DisplayName = "joselito", Email = "*****@*****.**", PasswordHash = hash, Salt = salt }, "password"); }
public override void Configure(Funq.Container container) { //register any dependencies your services use, e.g: //container.Register<ICacheClient>(new MemoryCacheClient()); //register the routes, can be in the configure of the asax too //Routes.Add<HelloWorld>("/Path"); //Add the auth feature Plugins.Add(new AuthFeature( () => new AuthUserSession(), new IAuthProvider[] {new BasicAuthProvider()})); //Register the Validation Plugin Plugins.Add(new ValidationFeature()); container.RegisterValidators(typeof(UnitSoldService).Assembly); //Register users Plugins.Add(new RegistrationFeature()); //Add the cache container for the auth //container.Register<ICacheClient>(new MemoryCacheClient()); //Caching with Redis //container.Register<IRedisClientsManager>(c => new PooledRedisClientManager()); //container.Register<ICacheClient>(c => (ICacheClient) c.Resolve<IRedisClientsManager>().GetCacheClient()); //Defines the user repository var userRepository = new InMemoryAuthRepository(); container.Register<IUserAuthRepository>(userRepository); //Add User //create hash and salt from password string hash; string salt; const string password = "******"; new SaltedHash().GetHashAndSaltString(password, out hash, out salt); userRepository.CreateUserAuth(new UserAuth { Id = 1, DisplayName = "Rafael", Email = "*****@*****.**", UserName = "******", FirstName = "Rafael", LastName = "Miceli", Roles = new List<string> {RoleNames.Admin}, //Permissions = new List<string>{"GetStatus"}, PasswordHash = hash, Salt = salt }, password); //var dbConnectionFactory = // new OrmLiteConnectionFactory(HttpContext.Current.Server.MapPath("~/App_Data/data.txt"), true, SqliteDialect.Provider); //container.Register<IDbConnectionFactory>(dbConnectionFactory); //container.RegisterAutoWired<UnitsRepository>(); }
public override void Configure(Funq.Container container) { Plugins.Add( new AuthFeature(() => new AuthUserSession(), new IAuthProvider[] { new DigestAuthProvider(), new BasicAuthProvider() })); Plugins.Add(new RegistrationFeature()); Plugins.Add(new ValidationFeature()); Plugins.Add(new RazorFormat()); container.Register<ICaseRepository>(new InMemoryCaseRepository()); container.Register<IReferenceValidator>(new ReferenceValidator(new InMemoryCaseRepository())); container.RegisterValidators(typeof(CaseValidator).Assembly); container.Register<ICacheClient>(new MemoryCacheClient()); var userRep = new InMemoryAuthRepository(); container.Register<IUserAuthRepository>(userRep); string hash; string salt; string password = "******"; new SaltedHash().GetHashAndSaltString(password, out hash, out salt); userRep.CreateUserAuth(new UserAuth { Id = 1, FirstName = "Joe", LastName = "Bloggs", DisplayName = "Joe Bloggs", UserName = "******", Email = "*****@*****.**", Salt = salt, PasswordHash = hash }, password); }
/* Uncomment to enable ServiceStack Authentication and CustomUserSession */ private void ConfigureAuth(Funq.Container container) { var appSettings = new AppSettings(); //Register all Authentication methods you want to enable for this web app. Plugins.Add(new AuthFeature(() => new AuthUserSession(), new IAuthProvider[] { } )); Plugins.Add(new AuthFeature(() => new AuthUserSession(), new IAuthProvider[] { new ShibbolethAuthProvider(), new TwitterAuthProvider(appSettings), new FacebookAuthProvider(appSettings), new GoogleOAuth2Provider(appSettings), }) { HtmlRedirect = "~/", IncludeRegistrationService = true, MaxLoginAttempts = appSettings.Get("MaxLoginAttempts", 5), }); Plugins.Add(new RegistrationFeature()); container.Register<ICacheClient>(new MemoryCacheClient()); var userRep = new InMemoryAuthRepository(); container.Register<IUserAuthRepository>(userRep); //Default route: /auth/{provider} }
public void InitTests() { dbFactory = new OrmLiteConnectionFactory(":memory:", false, SqliteOrmLiteDialectProvider.Instance); dbFactory.Run(db => db.CreateTable<Comment>()); var users = new InMemoryAuthRepository(); personRepository = new PersonRepository(users, null); issueRepository = new IssueRepository(dbFactory, personRepository); // TODO add issues }
public override IUserAuthRepository CreateAuthRepo() { var inMemoryRepo = new InMemoryAuthRepository(); InitTest(inMemoryRepo); return inMemoryRepo; }
public void InitTests() { dbFactory = new OrmLiteConnectionFactory(":memory:", false, SqliteOrmLiteDialectProvider.Instance); dbFactory.Run(db => db.CreateTable<Priority>()); var users = new InMemoryAuthRepository(); personRepository = new PersonRepository(users, null); ; }
public override void Configure(Funq.Container container) { //to inject third-party IoC (for example for NInject use SrviceStack.ContainerAdapter.NInject) //IKernel kernel=new StandartKernel(); //kernel.Bind<TrackedDataRepository>().ToSelf(); //container.Adapter=new NinjectContainerAdapter(kernel); -> provide a adapter layer for NInject to use in Funq Plugins.Add(new AuthFeature(() => new AuthUserSession(), new IAuthProvider[] { new BasicAuthProvider() , new TwitterAuthProvider(new AppSettings())})); Plugins.Add(new RegistrationFeature()); //register validators Plugins.Add(new ValidationFeature()); container.RegisterValidators(typeof(Common.Entry).Assembly, typeof(EntryService).Assembly); //request logs Plugins.Add(new RequestLogsFeature()); // added ability to view request via http:/..../requestlogs //cache registration container.Register<ICacheClient>(new MemoryCacheClient()); container.Register<IRedisClientsManager>(new PooledRedisClientManager("localhost:6379")); //container.Register<ICacheClient>(r => (ICacheClient)r.Resolve<IRedisClientsManager>().GetCacheClient()); var userRepository = new InMemoryAuthRepository(); container.Register<IUserAuthRepository>(userRepository); string hash; string salt; new SaltedHash().GetHashAndSaltString("password1", out hash, out salt); userRepository.CreateUserAuth(new UserAuth() { Id = 1, DisplayName = "Joe user", Email = "*****@*****.**", UserName = "******", LastName = "jname", PasswordHash = hash, Salt = salt, Roles = new List<string> { RoleNames.Admin }//, //Permissions = new List<string> { "GetStatus", "AddStatus" } }, "password1"); //automatically inject in all public properties container.RegisterAutoWired<TrackedDataRepository>().ReusedWithin(Funq.ReuseScope.Default); container.RegisterAutoWired<TrackedDataRepository2>().ReusedWithin(Funq.ReuseScope.Default); var dbConFactory = new OrmLiteConnectionFactory(HttpContext.Current.Server.MapPath("~/App_Data/data.txt"), SqliteDialect.Provider) { ConnectionFilter = x => new ProfiledDbConnection(x, Profiler.Current) }; container.Register<IDbConnectionFactory>(dbConFactory); SetConfig(new EndpointHostConfig { DebugMode = true }); var mqService = new RedisMqServer(container.Resolve<IRedisClientsManager>()); mqService.RegisterHandler<Entry>(ServiceController.ExecuteMessage); mqService.Start(); //install Razor Plugins.Add(new RazorFormat()); }
public override void Configure(Funq.Container container) { JsConfig.EmitCamelCaseNames = true; JsConfig.IncludeNullValues = true; JsConfig.DateHandler = JsonDateHandler.ISO8601; LogManager.LogFactory = new ConsoleLogFactory(); SetConfig(new EndpointHostConfig { WsdlServiceNamespace = "", AllowJsonpRequests = true, DebugMode = true, EnableFeatures = Feature.All.Remove(GetDisabledFeatures()), CustomHttpHandlers = { // Use the CmsRazorHandler to add theming capabilities { HttpStatusCode.NotFound, new CmsRazorHandler("/notfound") } } }); //Authentication (see: https://github.com/ServiceStack/ServiceStack/blob/master/tests/ServiceStack.WebHost.Endpoints.Tests/AuthTests.cs) Plugins.Add(new AuthFeature(() => new AuthUserSession(), new IAuthProvider[] { new BasicAuthProvider(), //Sign-in with Basic Auth }){ HtmlRedirect = null /* prevent redirect to login page, make the user login using basic auth prompt */ }); userRepository = new InMemoryAuthRepository(); container.Register<IUserAuthRepository>(userRepository); CreateUser(userRepository, 1, UserName, "DisplayName", null, Password); //Enable the validation feature and scan the service assembly for validators Plugins.Add(new ValidationFeature()); container.RegisterValidators(typeof(Services.CategoryService).Assembly); //Razor (use CmsRazorFormat to add theming capabilities) Plugins.Add(new CmsRazorFormat()); //Caching container.Register<ICacheClient>(new MemoryCacheClient()); //Entity Repositories container.RegisterAs<CategoryServiceRepository, ICategoryServiceRepository>(); container.RegisterAs<CustomerServiceRepository, ICustomerServiceRepository>(); container.RegisterAs<CustomerCustomerDemoServiceRepository, ICustomerCustomerDemoServiceRepository>(); container.RegisterAs<CustomerDemographicServiceRepository, ICustomerDemographicServiceRepository>(); container.RegisterAs<EmployeeServiceRepository, IEmployeeServiceRepository>(); container.RegisterAs<EmployeeTerritoryServiceRepository, IEmployeeTerritoryServiceRepository>(); container.RegisterAs<OrderServiceRepository, IOrderServiceRepository>(); container.RegisterAs<OrderDetailServiceRepository, IOrderDetailServiceRepository>(); container.RegisterAs<ProductServiceRepository, IProductServiceRepository>(); container.RegisterAs<RegionServiceRepository, IRegionServiceRepository>(); container.RegisterAs<ShipperServiceRepository, IShipperServiceRepository>(); container.RegisterAs<SupplierServiceRepository, ISupplierServiceRepository>(); container.RegisterAs<TerritoryServiceRepository, ITerritoryServiceRepository>(); //TypedList Repositories container.RegisterAs<TLSR.EmployeesByRegionAndTerritoryTypedListServiceRepository, TLSI.IEmployeesByRegionAndTerritoryTypedListServiceRepository>(); //TypedView Repositories container.RegisterAs<TVSR.AlphabeticalListOfProductsTypedViewServiceRepository, TVSI.IAlphabeticalListOfProductsTypedViewServiceRepository>(); container.RegisterAs<TVSR.CategorySalesFor1997TypedViewServiceRepository, TVSI.ICategorySalesFor1997TypedViewServiceRepository>(); container.RegisterAs<TVSR.CurrentProductListTypedViewServiceRepository, TVSI.ICurrentProductListTypedViewServiceRepository>(); container.RegisterAs<TVSR.CustomerAndSuppliersByCityTypedViewServiceRepository, TVSI.ICustomerAndSuppliersByCityTypedViewServiceRepository>(); container.RegisterAs<TVSR.InvoicesTypedViewServiceRepository, TVSI.IInvoicesTypedViewServiceRepository>(); container.RegisterAs<TVSR.OrderDetailsExtendedTypedViewServiceRepository, TVSI.IOrderDetailsExtendedTypedViewServiceRepository>(); container.RegisterAs<TVSR.OrdersQryTypedViewServiceRepository, TVSI.IOrdersQryTypedViewServiceRepository>(); container.RegisterAs<TVSR.OrderSubtotalTypedViewServiceRepository, TVSI.IOrderSubtotalTypedViewServiceRepository>(); container.RegisterAs<TVSR.ProductsAboveAveragePriceTypedViewServiceRepository, TVSI.IProductsAboveAveragePriceTypedViewServiceRepository>(); container.RegisterAs<TVSR.ProductSalesFor1997TypedViewServiceRepository, TVSI.IProductSalesFor1997TypedViewServiceRepository>(); container.RegisterAs<TVSR.ProductsByCategoryTypedViewServiceRepository, TVSI.IProductsByCategoryTypedViewServiceRepository>(); container.RegisterAs<TVSR.QuarterlyOrderTypedViewServiceRepository, TVSI.IQuarterlyOrderTypedViewServiceRepository>(); container.RegisterAs<TVSR.SalesByCategoryTypedViewServiceRepository, TVSI.ISalesByCategoryTypedViewServiceRepository>(); container.RegisterAs<TVSR.SalesTotalsByAmountTypedViewServiceRepository, TVSI.ISalesTotalsByAmountTypedViewServiceRepository>(); container.RegisterAs<TVSR.SummaryOfSalesByQuarterTypedViewServiceRepository, TVSI.ISummaryOfSalesByQuarterTypedViewServiceRepository>(); container.RegisterAs<TVSR.SummaryOfSalesByYearTypedViewServiceRepository, TVSI.ISummaryOfSalesByYearTypedViewServiceRepository>(); //DataAccess / OrmLite var connectionString = ConfigurationManager.ConnectionStrings["ApiDbConnectionString"].ConnectionString; container.Register<IDataAccessAdapterFactory>(c => new DataAccessAdapterFactory(connectionString)); container.Register<IDbConnectionFactory>(c => new OrmLiteConnectionFactory(connectionString, true, new SqlServerOrmLiteDialectProvider())); //DataAccess Caching (only for LLBLGen V4) //CacheController.RegisterCache(string.Empty /* connectionString */, new ResultsetCache(5*60 /* will purge the cache every 5 minutes */)); }
public override void Configure(Funq.Container container) { JsConfig.EmitCamelCaseNames = true; JsConfig.IncludeNullValues = true; JsConfig.DateHandler = JsonDateHandler.ISO8601; LogManager.LogFactory = new DebugLogFactory(); SetConfig(new EndpointHostConfig { WsdlServiceNamespace = "", AllowJsonpRequests = true, DebugMode = true, EnableFeatures = Feature.All.Remove(GetDisabledFeatures()) }); //Authentication (see: https://github.com/ServiceStack/ServiceStack/blob/master/tests/ServiceStack.WebHost.Endpoints.Tests/AuthTests.cs) Plugins.Add(new AuthFeature(() => new AuthUserSession(), new IAuthProvider[] { new BasicAuthProvider(), //Sign-in with Basic Auth }) { HtmlRedirect = null /* prevent redirect to login page, make the user login using basic auth prompt */ }); userRepository = new InMemoryAuthRepository(); container.Register<IUserAuthRepository>(userRepository); CreateUser(userRepository, 1, UserName, "DisplayName", null, Password); //NEW: Enable the validation feature and scans the service assembly for validators Plugins.Add(new ValidationFeature()); container.RegisterValidators(typeof(Northwind.Data.Services.CategoryService).Assembly); //Caching container.Register<ICacheClient>(new MemoryCacheClient()); //Repositories container.RegisterAs<CategoryServiceRepository, ICategoryServiceRepository>(); container.RegisterAs<CustomerServiceRepository, ICustomerServiceRepository>(); container.RegisterAs<CustomerCustomerDemoServiceRepository, ICustomerCustomerDemoServiceRepository>(); container.RegisterAs<CustomerDemographicServiceRepository, ICustomerDemographicServiceRepository>(); container.RegisterAs<EmployeeServiceRepository, IEmployeeServiceRepository>(); container.RegisterAs<EmployeeTerritoryServiceRepository, IEmployeeTerritoryServiceRepository>(); container.RegisterAs<OrderServiceRepository, IOrderServiceRepository>(); container.RegisterAs<OrderDetailServiceRepository, IOrderDetailServiceRepository>(); container.RegisterAs<ProductServiceRepository, IProductServiceRepository>(); container.RegisterAs<RegionServiceRepository, IRegionServiceRepository>(); container.RegisterAs<ShipperServiceRepository, IShipperServiceRepository>(); container.RegisterAs<SupplierServiceRepository, ISupplierServiceRepository>(); container.RegisterAs<TerritoryServiceRepository, ITerritoryServiceRepository>(); //DataAccess / OrmLite var connectionString = ConfigurationManager.ConnectionStrings["ApiDbConnectionString"].ConnectionString; container.Register<IDataAccessAdapterFactory>(c => new DataAccessAdapterFactory(connectionString)); container.Register<IDbConnectionFactory>(c => new OrmLiteConnectionFactory(connectionString, true, new SqlServerOrmLiteDialectProvider())); }