Пример #1
0
        // 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)
                };
            });
        }
Пример #2
0
 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());
 }
Пример #3
0
        // 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();
        }
Пример #4
0
        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();
        }
Пример #5
0
        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"));
                }
            }
        }