public CredentialsService( UserManager <AppUserEntity> userManager, IEmailService emailService, ILoginService loginService, IIdentityUIUserInfoService identityUIUserInfoService, IValidator <RecoverPasswordRequest> forgotPasswordValidator, IValidator <ResetPasswordRequest> recoverPasswordValidator, IValidator <ChangePasswordRequest> changePasswordValidator, IValidator <CreatePasswordRequest> createPasswordValidator, ILogger <CredentialsService> logger, IOptionsSnapshot <IdentityUIOptions> identityManagementOptions, IOptionsSnapshot <IdentityUIEndpoints> identityManagementEndpoints) { _userManager = userManager; _emailService = emailService; _loginService = loginService; _identityUIUserInfoService = identityUIUserInfoService; _forgotPasswordValidator = forgotPasswordValidator; _recoverPasswordValidator = recoverPasswordValidator; _changePasswordValidator = changePasswordValidator; _createPasswordValidator = createPasswordValidator; _logger = logger; _identityManagementOptions = identityManagementOptions.Value; _identityManagementEndpoints = identityManagementEndpoints.Value; }
public InviteService( IBaseDAO <AppUserEntity> userDAO, IBaseDAO <RoleEntity> roleDAO, IBaseDAO <InviteEntity> inviteDAO, IGroupStore groupStore, IGroupUserStore groupUserStore, IEmailService mailService, IAddInviteFilter addInviteFilter, IValidator <InviteToGroupRequest> inviteToGroupRequestValidator, IValidator <InviteRequest> inviteRequestValidator, ILogger <InviteService> logger, IOptions <IdentityUIOptions> identityManagementOptions, IOptions <IdentityUIEndpoints> identityManagementEndpoints) { _userDAO = userDAO; _roleDAO = roleDAO; _inviteDAO = inviteDAO; _groupStore = groupStore; _groupUserStore = groupUserStore; _mailService = mailService; _addInviteFilter = addInviteFilter; _inviteToGroupRequestValidator = inviteToGroupRequestValidator; _inviteRequestValidator = inviteRequestValidator; _logger = logger; _identityManagementOptions = identityManagementOptions.Value; _identityManagementEndpoints = identityManagementEndpoints.Value; }
public ExternalLoginService( SignInManager <AppUserEntity> signInManager, UserManager <AppUserEntity> userManager, IIdentityUIUserInfoService identityUIUserInfoService, ISessionService sessionService, ILoginFilter canLoginService, IOptions <IdentityUIOptions> identityUIOptions, IOptions <IdentityUIEndpoints> identityUIEndpoints, IValidator <ExternalLoginRequest> externalLoginRequestValidator, ILogger <ExternalLoginService> logger) { _signInManager = signInManager; _userManager = userManager; _identityUIUserInfoService = identityUIUserInfoService; _sessionService = sessionService; _canLoginService = canLoginService; _identityUIOptions = identityUIOptions.Value; _identityUIEndpoints = identityUIEndpoints.Value; _externalLoginRequestValidator = externalLoginRequestValidator; _logger = logger; }
public ProfileImageService(IBaseRepositoryAsync <UserImageEntity> userImageRepository, IMemoryCache memoryCache, IOptions <IdentityUIOptions> identityUIOptions, ILogger <ProfileImageService> logger) { _userImageRepository = userImageRepository; _memoryCache = memoryCache; _identityUIOptions = identityUIOptions.Value; _logger = logger; }
public EmailConfirmationService(UserManager <AppUserEntity> userManager, ILogger <EmailConfirmationService> logger, IEmailService emailService, IOptionsSnapshot <IdentityUIOptions> identityManagementOptions, IOptionsSnapshot <IdentityUIEndpoints> identityManagementEndpoints) { _userManager = userManager; _emailService = emailService; _logger = logger; _identityManagementOptions = identityManagementOptions.Value; _identityManagementEndpoints = identityManagementEndpoints.Value; }
public ProfileImageService( IBaseDAO <UserImageEntity> userImageDAO, IMemoryCache memoryCache, IDefaultProfileImageService defaultProfileImageService, IOptions <IdentityUIOptions> identityUIOptions, ILogger <ProfileImageService> logger) { _userImageDAO = userImageDAO; _memoryCache = memoryCache; _defaultProfileImageService = defaultProfileImageService; _identityUIOptions = identityUIOptions.Value; _logger = logger; }
public InviteService(IBaseRepository <AppUserEntity> userRepository, IBaseRepository <InviteEntity> inviteRepository, IBaseRepository <RoleEntity> roleRepository, IGroupStore groupStore, IGroupUserStore groupUserStore, IEmailService mailService, IValidator <InviteToGroupRequest> inviteToGroupRequestValidator, IValidator <InviteRequest> inviteRequestValidator, ILogger <InviteService> logger, IOptionsSnapshot <IdentityUIOptions> identityManagementOptions, IOptionsSnapshot <IdentityUIEndpoints> identityManagementEndpoints) { _userRepository = userRepository; _inviteRepository = inviteRepository; _roleRepository = roleRepository; _groupStore = groupStore; _groupUserStore = groupUserStore; _mailService = mailService; _inviteToGroupRequestValidator = inviteToGroupRequestValidator; _inviteRequestValidator = inviteRequestValidator; _logger = logger; _identityManagementOptions = identityManagementOptions.Value; _identityManagementEndpoints = identityManagementEndpoints.Value; }
/// <summary> /// Configures IdentityUI /// </summary> /// <param name="services"></param> /// <param name="configuration"></param> /// <param name="endpointAction"></param> /// <returns></returns> public static IdentityUIServicesBuilder ConfigureIdentityUI(this IServiceCollection services, IConfiguration configuration, Action <IdentityUIEndpoints> endpointAction) { IdentityUIOptions identityUIOptions = configuration.GetSection("IdentityUI").Get <IdentityUIOptions>(); if (identityUIOptions == null) { identityUIOptions = new IdentityUIOptions(); } services.Configure <IdentityUIOptions>(options => { options.BasePath = identityUIOptions.BasePath; options.Database = identityUIOptions.Database; options.EmailSender = identityUIOptions.EmailSender; }); services.Configure <DatabaseOptions>(options => { options.Type = identityUIOptions.Database?.Type ?? DatabaseTypes.InMemory; options.ConnectionString = identityUIOptions.Database?.ConnectionString; }); services.Configure <EmailSenderOptions>(options => { options.Ip = identityUIOptions.EmailSender?.Ip; options.Port = identityUIOptions.EmailSender?.Port ?? -1; options.UserName = identityUIOptions.EmailSender?.UserName; options.Password = identityUIOptions.EmailSender?.Password; options.SenderName = identityUIOptions.EmailSender?.SenderName; }); IdentityUIEndpoints identityManagementEndpoints = new IdentityUIEndpoints(); endpointAction?.Invoke(identityManagementEndpoints); if (!identityManagementEndpoints.UseEmailSender.HasValue) { if (identityUIOptions.EmailSender == null || string.IsNullOrEmpty(identityUIOptions.EmailSender.Ip)) { identityManagementEndpoints.UseEmailSender = false; } else { identityManagementEndpoints.UseEmailSender = true; } } services.Configure <IdentityUIEndpoints>(options => { options.Home = identityManagementEndpoints.Home; options.Login = identityManagementEndpoints.Login; options.Logout = identityManagementEndpoints.Logout; options.AccessDenied = identityManagementEndpoints.AccessDenied; options.Manage = identityManagementEndpoints.Manage; options.ConfirmeEmail = identityManagementEndpoints.ConfirmeEmail; options.ResetPassword = identityManagementEndpoints.ResetPassword; options.AcceptInvite = identityManagementEndpoints.AcceptInvite; options.RegisterEnabled = identityManagementEndpoints.RegisterEnabled; options.UseEmailSender = identityManagementEndpoints.UseEmailSender; options.UseSmsGateway = identityManagementEndpoints.UseSmsGateway; options.InviteValidForTimeSpan = identityManagementEndpoints.InviteValidForTimeSpan; }); IdentityUIServicesBuilder builder = new IdentityUIServicesBuilder(services, identityManagementEndpoints); builder.Services.AddScoped <IEmailSender, NullEmailSender>(); builder.Services.AddScoped <ISmsSender, NullSmsSender>(); return(builder); }
/// <summary> /// Configures IdentityUI /// </summary> /// <param name="services"></param> /// <param name="configuration"></param> /// <param name="endpointAction"></param> /// <returns></returns> public static IdentityUIServicesBuilder ConfigureIdentityUI(this IServiceCollection services, IConfiguration configuration, Action <IdentityUIEndpoints> endpointAction) { IdentityUIOptions identityUIOptions = configuration.GetSection("IdentityUI").Get <IdentityUIOptions>(); if (identityUIOptions == null) { identityUIOptions = new IdentityUIOptions(); } services.Configure <IdentityUIOptions>(options => { options.BasePath = identityUIOptions.BasePath; options.Database = identityUIOptions.Database; options.EmailSender = identityUIOptions.EmailSender; }); services.Configure <ReCaptchaOptions>(options => { options.SiteKey = identityUIOptions.ReCaptcha?.SiteKey; options.SiteSecret = identityUIOptions.ReCaptcha?.SiteSecret; }); DatabaseOptions databaseOptions = new DatabaseOptions { Type = identityUIOptions.Database?.Type ?? DatabaseTypes.InMemory, ConnectionString = identityUIOptions.Database?.ConnectionString }; services.Configure <DatabaseOptions>(options => { options.Type = databaseOptions.Type; options.ConnectionString = databaseOptions.ConnectionString; }); services.Configure <EmailSenderOptions>(options => { options.Ip = identityUIOptions.EmailSender?.Ip; options.Port = identityUIOptions.EmailSender?.Port ?? -1; options.UserName = identityUIOptions.EmailSender?.UserName; options.Password = identityUIOptions.EmailSender?.Password; options.SenderEmail = identityUIOptions.EmailSender?.SenderName; options.SenderEmail = identityUIOptions.EmailSender?.SenderEmail; options.SenderDisplayName = identityUIOptions.EmailSender?.SenderDisplayName; options.UseSSL = identityUIOptions.EmailSender?.UseSSL ?? false; }); IdentityUIEndpoints identityManagementEndpoints = new IdentityUIEndpoints(); endpointAction?.Invoke(identityManagementEndpoints); if (!identityManagementEndpoints.UseEmailSender.HasValue) { if (identityUIOptions.EmailSender == null || string.IsNullOrEmpty(identityUIOptions.EmailSender.Ip)) { identityManagementEndpoints.UseEmailSender = false; } else { identityManagementEndpoints.UseEmailSender = true; } } services.Configure <IdentityUIEndpoints>(options => { options.Home = identityManagementEndpoints.Home; options.Login = identityManagementEndpoints.Login; options.Logout = identityManagementEndpoints.Logout; options.AccessDenied = identityManagementEndpoints.AccessDenied; options.Manage = identityManagementEndpoints.Manage; options.ConfirmeEmail = identityManagementEndpoints.ConfirmeEmail; options.ResetPassword = identityManagementEndpoints.ResetPassword; options.AcceptInvite = identityManagementEndpoints.AcceptInvite; options.ProfileImage = identityManagementEndpoints.ProfileImage; options.AdminLogo = identityManagementEndpoints.AdminLogo; options.AccountSettingsLogo = identityManagementEndpoints.AccountSettingsLogo; options.RegisterEnabled = identityManagementEndpoints.RegisterEnabled; options.GroupRegistrationEnabled = identityManagementEndpoints.GroupRegistrationEnabled; options.AuthenticatorIssuer = identityManagementEndpoints.AuthenticatorIssuer; options.UseEmailSender = identityManagementEndpoints.UseEmailSender; options.UseSmsGateway = identityManagementEndpoints.UseSmsGateway; options.InviteValidForTimeSpan = identityManagementEndpoints.InviteValidForTimeSpan; options.BypassTwoFactorOnExternalLogin = identityManagementEndpoints.BypassTwoFactorOnExternalLogin; options.UseEmailAsUsername = identityManagementEndpoints.UseEmailAsUsername; options.ShowAuditToUser = identityManagementEndpoints.ShowAuditToUser; options.CanChangeGroupName = identityManagementEndpoints.CanChangeGroupName; options.CanRemoveGroup = identityManagementEndpoints.CanRemoveGroup; options.CanRemoveUser = identityManagementEndpoints.CanRemoveUser; options.AllowImpersonation = identityManagementEndpoints.AllowImpersonation; }); IdentityUIServicesBuilder builder = new IdentityUIServicesBuilder(services, identityManagementEndpoints, databaseOptions, configuration); builder.Services.AddScoped <IEmailSender, NullEmailSender>(); builder.Services.AddScoped <ISmsSender, NullSmsSender>(); builder.Services.AddScoped <IReleaseManagement, ReleaseManagement>(); builder.Services.AddAudit(); builder.Services.AddTransient <IAuditDbContext, IdentityDbContext>(); services.AddScoped <Audit.Services.IAuditSubjectDataService>(x => { Microsoft.Extensions.Options.IOptions <Audit.Models.AuditOptions> auditOptions = x.GetRequiredService <Microsoft.Extensions.Options.IOptions <Audit.Models.AuditOptions> >(); Microsoft.Extensions.Options.IOptions <IdentityUIClaimOptions> identityUIClaimOptions = x.GetRequiredService <Microsoft.Extensions.Options.IOptions <IdentityUIClaimOptions> >(); Microsoft.AspNetCore.Http.IHttpContextAccessor httpContextAccessor = x.GetRequiredService <Microsoft.AspNetCore.Http.IHttpContextAccessor>(); IIdentityUIUserInfoService identityUIUserInfoService = x.GetRequiredService <IIdentityUIUserInfoService>(); if (httpContextAccessor.HttpContext != null) { return(new IdentityUIAuditSubjectService(httpContextAccessor, identityUIUserInfoService, auditOptions, identityUIClaimOptions)); } Audit.Services.IBackgroundServiceContextAccessor backgroundServiceContextAccessor = x.GetRequiredService <Audit.Services.IBackgroundServiceContextAccessor>(); if (backgroundServiceContextAccessor.BackgroundServiceContext != null) { return(new Audit.Services.BackgroundServiceAuditSubjectDataService(backgroundServiceContextAccessor)); } return(new Audit.Services.DefaultAuditSubjectService(auditOptions)); }); return(builder); }