Exemple #1
0
 public LoginModel(
     SignInManager <IdentityUser> signInManager,
     ILogger <LoginModel> logger,
     IOptions <IdentityDefaultOptions> identityDefaultOptions
     )
 {
     _signInManager          = signInManager;
     _logger                 = logger;
     _identityDefaultOptions = identityDefaultOptions.Value;
 }
Exemple #2
0
 AdminAuthenticationHandler(IOptionsMonitor <AdminAuthenticationOptions> options, ILoggerFactory logger, UrlEncoder encoder, ISystemClock clock,
                            UserManager <ApplicationUser> userManager, IOptions <AppSettings> appSettings, IOptions <DataProtectionKeys> dataProtectionKeys, IServiceProvider provider,
                            IOptions <IdentityDefaultOptions> identityDefaultOptions) : base(options, logger, encoder, clock)
 {
     _userManager            = userManager;
     _appSettings            = appSettings.Value;
     _identityDefaultOptions = identityDefaultOptions.Value;
     _provider           = provider;
     _dataProtectionKeys = dataProtectionKeys.Value;
 }
Exemple #3
0
 //dependency injection through constructor, to directly access services
 public MembershipController(
     Services.Security.ICommon security,
     IOptions <IdentityDefaultOptions> identityDefaultOptions,
     IOptions <SuperAdminDefaultOptions> superAdminDefaultOptions,
     ApplicationDbContext context,
     UserManager <IdentityUser> userManager
     )
 {
     _security = security;
     _identityDefaultOptions   = identityDefaultOptions.Value;
     _superAdminDefaultOptions = superAdminDefaultOptions.Value;
     _context     = context;
     _userManager = userManager;
 }
Exemple #4
0
 public RegisterModel(
     UserManager <IdentityUser> userManager,
     SignInManager <IdentityUser> signInManager,
     ILogger <RegisterModel> logger,
     IEmailSender emailSender,
     IOptions <IdentityDefaultOptions> identityDefaultOptions
     )
 {
     _userManager            = userManager;
     _signInManager          = signInManager;
     _logger                 = logger;
     _emailSender            = emailSender;
     _identityDefaultOptions = identityDefaultOptions.Value;
 }
Exemple #5
0
 public ChangePasswordModel(
     UserManager <IdentityUser> userManager,
     SignInManager <IdentityUser> signInManager,
     ILogger <ChangePasswordModel> logger,
     IOptions <IdentityDefaultOptions> identityDefaultOptions,
     IOptions <SuperAdminDefaultOptions> superAdminDefaultOptions
     )
 {
     _userManager              = userManager;
     _signInManager            = signInManager;
     _logger                   = logger;
     _identityDefaultOptions   = identityDefaultOptions.Value;
     _superAdminDefaultOptions = superAdminDefaultOptions.Value;
 }
Exemple #6
0
 public IndexModel(
     UserManager <IdentityUser> userManager,
     SignInManager <IdentityUser> signInManager,
     IEmailSender emailSender,
     IOptions <IdentityDefaultOptions> identityDefaultOptions,
     IOptions <SuperAdminDefaultOptions> superAdminDefaultOptions
     )
 {
     _userManager              = userManager;
     _signInManager            = signInManager;
     _emailSender              = emailSender;
     _identityDefaultOptions   = identityDefaultOptions.Value;
     _superAdminDefaultOptions = superAdminDefaultOptions.Value;
 }
        public static async Task Initialize(IServiceProvider serviceProvider, IdentityDefaultOptions identityProperties)
        {
            var userManager = serviceProvider.GetRequiredService <CustomUserManager>();
            var roleManager = serviceProvider.GetRequiredService <RoleManager <IdentityRole> >();

            string[] roles = new string[] { "Administrators", "ContentManagers" };
            foreach (var item in roles)
            {
                if (await roleManager.RoleExistsAsync(item) == false)
                {
                    IdentityRole newrole = new IdentityRole(item);
                    await roleManager.CreateAsync(newrole);
                }
            }

            var user = await userManager.FindByEmailAsync(identityProperties.AdminUser.EmailAddress);

            if (user == null)
            {
                user = new ApplicationUser()
                {
                    Email              = identityProperties.AdminUser.EmailAddress,
                    NormalizedEmail    = identityProperties.AdminUser.EmailAddress.ToUpper(),
                    UserName           = identityProperties.AdminUser.EmailAddress,
                    NormalizedUserName = identityProperties.AdminUser.EmailAddress.ToUpper(), //IMPORTENT USERNAME MUST BE SAME AS EMAIL ADDRESS OTHERWISE LOGIN FAILES
                    FirstName          = "Admin",
                    EmailConfirmed     = true,
                };


                var status = await userManager.CreateAsync(user, identityProperties.AdminUser.Password);

                if (status.Succeeded == true)
                {
                    await userManager.AddToRoleAsync(user, "Administrators");
                }
            }
        }
Exemple #8
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddDataProtection().SetApplicationName("Vinarish")
            .PersistKeysToDbContext <ApplicationDbContext>();
            services.Configure <RequestLocalizationOptions>(options =>
            {
                options.DefaultRequestCulture = new Microsoft.AspNetCore.Localization.RequestCulture("fa-IR");
                options.SupportedCultures     = new List <CultureInfo> {
                    new CultureInfo("fa-IR")
                };
            });
            services.AddDbContext <ApplicationDbContext>(options =>
                                                         options.UseSqlServer(
                                                             Configuration.GetConnectionString("DefaultConnection")));//.UseLazyLoadingProxies()
            // Get Identity Default Options
            IConfigurationSection identityDefaultOptionsConfigurationSection = Configuration.GetSection("IdentityDefaultOptions");

            services.Configure <IdentityDefaultOptions>(identityDefaultOptionsConfigurationSection);

            IdentityDefaultOptions identityDefaultOptions = identityDefaultOptionsConfigurationSection.Get <IdentityDefaultOptions>();

            services.AddIdentity <VinarishUser, IdentityRole>(options =>
            {
                // Password settings
                options.Password.RequireDigit           = identityDefaultOptions.PasswordRequireDigit;
                options.Password.RequiredLength         = identityDefaultOptions.PasswordRequiredLength;
                options.Password.RequireNonAlphanumeric = identityDefaultOptions.PasswordRequireNonAlphanumeric;
                options.Password.RequireUppercase       = identityDefaultOptions.PasswordRequireUppercase;
                options.Password.RequireLowercase       = identityDefaultOptions.PasswordRequireLowercase;
                options.Password.RequiredUniqueChars    = identityDefaultOptions.PasswordRequiredUniqueChars;

                // Lockout settings
                options.Lockout.DefaultLockoutTimeSpan  = TimeSpan.FromMinutes(identityDefaultOptions.LockoutDefaultLockoutTimeSpanInMinutes);
                options.Lockout.MaxFailedAccessAttempts = identityDefaultOptions.LockoutMaxFailedAccessAttempts;
                options.Lockout.AllowedForNewUsers      = identityDefaultOptions.LockoutAllowedForNewUsers;

                // User settings
                options.User.RequireUniqueEmail = identityDefaultOptions.UserRequireUniqueEmail;

                // email confirmation require
                options.SignIn.RequireConfirmedEmail = identityDefaultOptions.SignInRequireConfirmedEmail;
            })
            .AddEntityFrameworkStores <ApplicationDbContext>()
            .AddDefaultTokenProviders();

            // cookie settings
            services.ConfigureApplicationCookie(options =>
            {
                // Cookie settings
                options.Cookie.HttpOnly   = identityDefaultOptions.CookieHttpOnly;
                options.Cookie.Expiration = TimeSpan.FromDays(identityDefaultOptions.CookieExpiration);
                options.LoginPath         = identityDefaultOptions.LoginPath;        // If the LoginPath is not set here, ASP.NET Core will default to /Account/Login
                options.LogoutPath        = identityDefaultOptions.LogoutPath;       // If the LogoutPath is not set here, ASP.NET Core will default to /Account/Logout
                options.AccessDeniedPath  = identityDefaultOptions.AccessDeniedPath; // If the AccessDeniedPath is not set here, ASP.NET Core will default to /Account/AccessDenied
                options.SlidingExpiration = identityDefaultOptions.SlidingExpiration;
            });

            // Get Super Admin Default options
            services.Configure <SuperAdminDefaultOptions>(Configuration.GetSection("SuperAdminDefaultOptions"));

            services.AddTransient <IRoles, Roles>();

            services.AddTransient <IFunctional, Functional>();
            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);

            services.AddAuthorization();
        }