// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddCors(); services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1); services.AddMvc().AddJsonOptions(options => { options.SerializerSettings.Formatting = Formatting.Indented; }); services.AddAuthorization(); services.AddScoped <IUserRepository, UserRepository> (); services.AddScoped <IUserService, UserService> (); services.AddScoped <IMovieRepository, MovieRepository> (); services.AddScoped <IMovieService, MovieService> (); services.AddScoped <ITicketService, TicketService> (); services.AddSingleton <IJwtHandler, JwtHandler> (); services.AddSingleton(AutoMapperConfiguration.Initialize()); services.Configure <JWTSettings> (Configuration.GetSection("jwt")); services.Configure <DatabaseSettings> (options => { options.ConnectionString = Configuration.GetSection("MongoDb:ConnectionString").Value; options.Database = Configuration.GetSection("MongoDb:Database").Value; }); services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme) .AddJwtBearer(options => { options.TokenValidationParameters = new TokenValidationParameters { ValidIssuer = Configuration.GetSection("jwt:issuer").Value, ValidateAudience = false, IssuerSigningKey = JWTSecurityKey.Create(Configuration.GetSection("jwt:key").Value) }; }); }
public static JWTToken CreateToken(LoginModel loginModel) { return(new JWTTokenBuilder() .AddSecurityKey(JWTSecurityKey.Create("fiver-secret-key")) .AddSubject(loginModel.USERNAME + " " + loginModel.PASSWORD) .AddIssuer("Fiver.Security.Bearer") .AddAudience("Fiver.Security.Bearer") .AddClaim("ID", loginModel.ID.ToString()) .AddExpiry(5000) .Build()); }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddDbContext <DatabaseContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"))); services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme) .AddJwtBearer(options => { options.TokenValidationParameters = new TokenValidationParameters { ValidateIssuer = true, ValidateAudience = true, ValidateLifetime = true, ValidateIssuerSigningKey = true, ValidIssuer = "Test.Security.Bearer", ValidAudience = "Test.Security.Bearer", IssuerSigningKey = JWTSecurityKey.Create("Test-secret-key-1234") }; options.Events = new JwtBearerEvents { OnAuthenticationFailed = context => { Console.WriteLine("OnAuthenticationFailed: " + context.Exception.Message); return(Task.CompletedTask); }, OnTokenValidated = context => { Console.WriteLine("OnTokenValidated: " + context.SecurityToken); return(Task.CompletedTask); } }; }); services.AddAuthorization(options => { options.AddPolicy("User", policy => policy.RequireClaim("User")); options.AddPolicy("Admin", policy => policy.RequireClaim("Admin")); }); services.AddMvc(); services.AddDistributedMemoryCache(); services.AddSession(); }
public void ConfigureServices(IServiceCollection services) { services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme) .AddJwtBearer(options => { options.TokenValidationParameters = new TokenValidationParameters { ValidateIssuer = true, ValidateAudience = true, ValidateLifetime = true, ValidateIssuerSigningKey = true, ValidIssuer = "volatile", ValidAudience = "volatile.s.children", IssuerSigningKey = JWTSecurityKey.Create("mycoolsecretkey") }; options.Events = new JwtBearerEvents { OnAuthenticationFailed = context => { Console.WriteLine("OnAuthenticationFailed: " + context.Exception.Message); return(Task.CompletedTask); }, OnTokenValidated = context => { Console.WriteLine("OnTokenValidated: " + context.SecurityToken); return(Task.CompletedTask); } }; }); services.AddAuthorization(options => { options.AddPolicy("Role", policy => policy.RequireRole("User")); }); services.AddMvc(); }
public async Task <IActionResult> Authoristation([Bind("Login, Password")] User realUser) { User userTruly = _context.Users.Where(s => s.Login == realUser.Login && s.Password == Hasher.GetHashString(realUser.Password)).FirstOrDefault <User>(); if (userTruly == null) { return(View("Error")); } else { var token = new JwtTokenBuilder() .AddSecurityKey(JWTSecurityKey.Create("Test-secret-key-1234")) .AddSubject(userTruly.Login) .AddIssuer("Test.Security.Bearer") .AddAudience("Test.Security.Bearer") .AddClaim(userTruly.Role, userTruly.ID.ToString()) .AddExpiry(200) .Build(); userTruly.LastToken = token.Value; //Обновляем данные в БД по пользователю _context.Users.Update(userTruly); _context.SaveChanges(); if (realUser != null) { HttpContext.Session.SetString("Token", userTruly.LastToken); HttpContext.Session.SetString("Login", userTruly.Login); return(RedirectToAction("Index", "Home")); } else { return(View("Error")); } } }