public UserManager( TfaContext ctx, SigningConfigurations signingConfigurations, TokenConfigurations tokenConfigurations, UrlEncoder urlEncoder ) { _ctx = ctx; _signingConfigurations = signingConfigurations; _tokenConfigurations = tokenConfigurations; _urlEncoder = urlEncoder; }
public RegisterUserValidator(TfaContext ctx) { RuleFor(x => x.Password) .NotEmpty() .WithMessage("Password is required"); RuleFor(x => x.Email) .Cascade(CascadeMode.StopOnFirstFailure) .NotEmpty() .WithMessage("E-mail is required") .EmailAddress() .WithMessage("E-mail is invalid") .MustAsync(async(a, b, c) => !await ctx.Users.AnyAsync(x => x.Email == b)) .WithMessage("E-mail already registered"); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IWebHostEnvironment env, TfaContext ctx) { // migrate any database changes on startup (includes initial db creation) ctx.Database.Migrate(); if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { app.UseExceptionHandler("/Error"); // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts. app.UseHsts(); } app.UseCors(); app.UseHttpsRedirection(); app.UseStaticFiles(); app.UseSpaStaticFiles(); // Enable middleware to serve generated Swagger as a JSON endpoint. app.UseSwagger(); // Enable middleware to serve swagger-ui (HTML, JS, CSS, etc.), // specifying the Swagger JSON endpoint. app.UseSwaggerUI(c => { c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1"); }); app.UseRouting(); app.UseAuthentication(); app.UseAuthorization(); app.UseEndpoints(endpoints => { endpoints.MapControllerRoute( name: "default", pattern: "{controller}/{action=Index}/{id?}"); }); app.UseSpa(spa => { spa.Options.SourcePath = "wwwroot"; }); }