예제 #1
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.Configure <CookiePolicyOptions>(options =>
            {
                // This lambda determines whether user consent for non-essential cookies is needed for a given request.
                options.CheckConsentNeeded    = context => true;
                options.MinimumSameSitePolicy = SameSiteMode.None;
            });
            services.AddCorrelationId();
            services.AddDbContext <ApplicationDbContext>(options =>
                                                         options.UseSqlServer(
                                                             Configuration.GetConnectionString("DefaultConnection")));
            services.AddIdentity <ApplicationUser, ApplicationRole>(options =>
            {
                options.Stores.MaxLengthForKeys      = 128;
                options.SignIn.RequireConfirmedEmail = true;
                options.User.RequireUniqueEmail      = true;
            })

            .AddEntityFrameworkStores <ApplicationDbContext>()
            .AddUserManager <AppUserManager>()
            .AddDefaultUI(UIFramework.Bootstrap4)
            .AddDefaultTokenProviders();


            services.Configure <AppSetupOptions>(Configuration.GetSection("AppSetupOptions"));

            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
            services.Configure <EmailConfiguration>(Configuration.GetSection("EmailConfiguration"));
            services.AddScoped <IAuthorizationHandler, PermissionAuthorizationHandler>();
            services.AddSingleton <IAuthorizationPolicyProvider, PermissionPolicyProvider>();
            services.AddTransient <IEmailService, EmailService>();
            services.AddTransient <IAppUserManager, AppUserManager>();
            PermissionsSeeder.Initialize(services);
        }
예제 #2
0
        public async Task TestSeedPermissions()
        {
            var seeder = new PermissionsSeeder(_roleManager);

            await seeder.RegisterPermissions(typeof(PermissionsTest)).SeedAsync();

            var roles  = _roleManager.Roles.ToList();
            var claims = await _roleManager.GetClaimsAsync(roles[0]);

            Assert.True(roles.Count == 1);
            Assert.True(claims.Count == 2);
            Assert.Equal("1", claims[0].Value);
            Assert.Equal("2", claims[1].Value);
        }
예제 #3
0
 public static void InitialiseUsersAndRoles()
 {
     UsersAndRolesInitialiser.Seed();
     PermissionsSeeder.Seed(new LocalDb());
 }