コード例 #1
0
        public static IServiceCollection AddIdentityModuleCore(this IServiceCollection services, Action <IdentityModuleOptions> configureOptions)
        {
            var settings = new IdentityModuleOptions();

            configureOptions(settings);

            services.Configure(configureOptions);

            services.AddDbContext <IdentityDbContext>(options => options.UseSqlServer(settings.ConnectionStrings.Default, sql =>
            {
                if (!string.IsNullOrEmpty(settings.ConnectionStrings.MigrationsAssembly))
                {
                    sql.MigrationsAssembly(settings.ConnectionStrings.MigrationsAssembly);
                }
            }))
            .AddScoped(typeof(IUserRepository), typeof(UserRepository))
            .AddScoped(typeof(IRoleRepository), typeof(RoleRepository))
            .AddScoped(typeof(IUserService), typeof(UserService));

            services.AddIdentityCore <User>()
            .AddTokenProviders()
            .AddPasswordValidators();

            services.AddTransient <IUserStore <User>, UserStore>();
            services.AddTransient <IRoleStore <Role>, RoleStore>();

            ConfigureOptions(services);

            services.AddMessageHandlers(Assembly.GetExecutingAssembly());

            return(services);
        }
コード例 #2
0
 public UsersController(Dispatcher dispatcher,
                        UserManager <User> userManager,
                        ILogger <UsersController> logger,
                        IDateTimeProvider dateTimeProvider,
                        IEmailMessageService emailMessageService,
                        IOptionsSnapshot <IdentityModuleOptions> moduleOptions)
 {
     _dispatcher          = dispatcher;
     _userManager         = userManager;
     _dateTimeProvider    = dateTimeProvider;
     _emailMessageService = emailMessageService;
     _moduleOptions       = moduleOptions.Value;
 }
        public static IServiceCollection AddIdentityModule(this IServiceCollection services, IdentityModuleOptions moduleOptions)
        {
            services.Configure <IdentityModuleOptions>(op =>
            {
                op.ConnectionStrings            = moduleOptions.ConnectionStrings;
                op.IdentityServerAuthentication = moduleOptions.IdentityServerAuthentication;
            });

            services.AddDbContext <IdentityDbContext>(options => options.UseSqlServer(moduleOptions.ConnectionStrings.Default, sql =>
            {
                if (!string.IsNullOrEmpty(moduleOptions.ConnectionStrings.MigrationsAssembly))
                {
                    sql.MigrationsAssembly(moduleOptions.ConnectionStrings.MigrationsAssembly);
                }
            }))
            .AddScoped(typeof(IUserRepository), typeof(UserRepository))
            .AddScoped(typeof(IRoleRepository), typeof(RoleRepository))
            .AddScoped(typeof(IUserService), typeof(UserService));

            services.AddIdentity <User, Role>()
            .AddTokenProviders()
            .AddPasswordValidators();

            services.AddTransient <IUserStore <User>, UserStore>();
            services.AddTransient <IRoleStore <Role>, RoleStore>();

            ConfigureOptions(services);

            services.ConfigureApplicationCookie(options =>
            {
                options.LoginPath = "/Account/Login";
            });

            services.AddMessageHandlers(Assembly.GetExecutingAssembly());

            return(services);
        }