예제 #1
0
        public static void ConfigureIdentity(this IServiceCollection services)
        {
            var builder = services.AddIdentityCore <ApiUser>(q => q.User.RequireUniqueEmail = true);

            builder = new Microsoft.AspNetCore.Identity.IdentityBuilder(builder.UserType, typeof(IdentityRole), services);
            builder.AddEntityFrameworkStores <DatabaseContext>().AddDefaultTokenProviders();
        }
        private static void BuildIdentity(IServiceCollection services)
        {
            var identityBuilder = services.AddIdentityCore <AppUser>(identityOption =>
            {
                identityOption.Password.RequireDigit           = false;
                identityOption.Password.RequireLowercase       = false;
                identityOption.Password.RequireUppercase       = false;
                identityOption.Password.RequireNonAlphanumeric = false;
                identityOption.Password.RequiredLength         = 6;
            });

            identityBuilder = new Microsoft.AspNetCore.Identity.IdentityBuilder(identityBuilder.UserType, typeof(IdentityRole), identityBuilder.Services);
            identityBuilder.AddEntityFrameworkStores <UserContext>().AddDefaultTokenProviders();
        }
예제 #3
0
        public static void ConfigureIdentity(this IServiceCollection services)
        {
            var builder = services.AddIdentityCore <User>(u =>
            {
                u.Password.RequireDigit           = true;
                u.Password.RequiredLength         = 8;
                u.Password.RequireLowercase       = false;
                u.Password.RequireUppercase       = true;
                u.Password.RequireNonAlphanumeric = true;
                u.User.RequireUniqueEmail         = true;
            }
                                                          );

            builder = new Microsoft.AspNetCore.Identity.IdentityBuilder(builder.UserType, typeof(IdentityRole), builder.Services);
            builder.AddEntityFrameworkStores <RepositoryContext>().AddDefaultTokenProviders();
        }
        public static IServiceCollection AddIdentityServices(this IServiceCollection services, IConfiguration config)
        {
            var builder = services.AddIdentityCore <AppUser>();

            builder = new Microsoft.AspNetCore.Identity.IdentityBuilder(builder.UserType, builder.Services);
            builder.AddEntityFrameworkStores <AppIdentityDbContext>();
            builder.AddUserManager <UserManager <AppUser> >();
            builder.AddSignInManager <SignInManager <AppUser> >();

            services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
            .AddJwtBearer(options => {
                options.TokenValidationParameters = new TokenValidationParameters {
                    ValidateIssuerSigningKey = true,
                    IssuerSigningKey         = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(config["Token:Key"])),
                    ValidIssuer      = config["Token:Issuer"],
                    ValidateIssuer   = true,
                    ValidateAudience = false
                };
            });
            return(services);
        }
예제 #5
0
파일: Startup.cs 프로젝트: recev/DatingApp
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddDbContext <DatingDbContext>((options) => {
                options.UseSqlServer(Configuration.GetConnectionString("DefaultConnectionString"))
                .EnableSensitiveDataLogging();
            });

            // services.AddDbContext<DatingDbContext>((options) => {
            //     options.UseSqlServer(Configuration.GetConnectionString("DefaultConnectionString"));
            // });

            var identityBuilder = services.AddIdentityCore <User>(options => {
                options.Password.RequireDigit           = false;
                options.Password.RequiredLength         = 4;
                options.Password.RequireNonAlphanumeric = false;
                options.Password.RequireUppercase       = false;
            });

            identityBuilder = new Microsoft.AspNetCore.Identity.IdentityBuilder(identityBuilder.UserType, typeof(Role), services);

            identityBuilder.AddEntityFrameworkStores <DatingDbContext>();
            identityBuilder.AddRoleValidator <RoleValidator <Role> >();
            identityBuilder.AddRoleManager <RoleManager <Role> >();
            identityBuilder.AddSignInManager <SignInManager <User> >();

            services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
            .AddJwtBearer(options => {
                var securityKey        = Configuration.GetSection("AuthenticationSettings:SecretKey").Value;
                var securityKeyInBytes = System.Text.Encoding.UTF8.GetBytes(securityKey);
                var IssuerSigningKey   = new SymmetricSecurityKey(securityKeyInBytes);

                options.TokenValidationParameters = new TokenValidationParameters()
                {
                    ValidateIssuerSigningKey = true,
                    ValidateAudience         = false,
                    ValidateIssuer           = false,
                    IssuerSigningKey         = IssuerSigningKey
                };
            });

            services.AddAuthorization(options => {
                options.AddPolicy("AdminPolicy", policy => policy.RequireRole("Admin"));
                options.AddPolicy("MemberPolicy", policy => policy.RequireRole("Member"));
                options.AddPolicy("ModeratorPolicy", policy => policy.RequireRole("Admin", "Moderator"));
            });

            services.AddControllers(options => {
                var policy = new AuthorizationPolicyBuilder()
                             .RequireAuthenticatedUser()
                             .Build();

                options.Filters.Add(new AuthorizeFilter(policy));
            });
            services.AddControllers().AddNewtonsoftJson(setup => {
                setup.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
            });
            services.AddScoped <IAuthorization, Authorization>();
            services.AddScoped <IUserRepository, userRepository>();
            services.AddScoped <IPhotoRepository, PhotoRepository>();
            services.AddScoped <ILikeRepository, LikeRepository>();
            services.AddScoped <ImessageRepository, MessageRepository>();
            services.AddScoped <LogUserActivity>();
            services.Configure <CloudinarySettings>(this.Configuration.GetSection("CloudinarySettings"));
            services.Configure <AuthenticationSettings>(this.Configuration.GetSection("AuthenticationSettings"));

            services.AddAutoMapper(typeof(userRepository).Assembly);
        }