Example #1
0
        public async Task Then_password_is_validated_correctly(string newpassword, bool expectedValidity)
        {
            var dbContextOptions = new DbContextOptionsBuilder <LoginContext>()
                                   .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString())
                                   .Options;

            var _loginContext = new LoginContext(dbContextOptions);

            _loginContext.InvalidPasswords.Add(new InvalidPassword()
            {
                Password = "******"
            });
            _loginContext.InvalidPasswords.Add(new InvalidPassword()
            {
                Password = "******"
            });
            _loginContext.InvalidPasswords.Add(new InvalidPassword()
            {
                Password = "******"
            });
            await _loginContext.SaveChangesAsync();

            var validator = new CustomPasswordValidator <LoginUser>(Substitute.For <ILogger <CustomPasswordValidator <LoginUser> > >(), _loginContext);

            var userManager = new UserManager <LoginUser>(Substitute.For <IUserStore <LoginUser> >(), Substitute.For <IOptions <IdentityOptions> >(), Substitute.For <IPasswordHasher <LoginUser> >()
                                                          , Substitute.For <IEnumerable <IUserValidator <LoginUser> > >(), new List <IPasswordValidator <LoginUser> >(), Substitute.For <ILookupNormalizer>(), new IdentityErrorDescriber(), Substitute.For <IServiceProvider>(),
                                                          Substitute.For <ILogger <UserManager <LoginUser> > >());

            var result = await validator.ValidateAsync(userManager, new LoginUser(), newpassword);

            (result == IdentityResult.Success).Should().Be(expectedValidity);
        }
Example #2
0
        private void CreateApplicationUserManager()
        {
            ClaimsIdentityFactory = new CustomClaimsIdentityFactory();

            UserValidator = new CustomUserValidator <User, long>(this)
            {
                AllowOnlyAlphanumericUserNames = false,
                RequireUniqueEmail             = true
            };

            PasswordValidator = new CustomPasswordValidator
            {
                RequiredLength          = 5,
                RequireNonLetterOrDigit = false,
                RequireDigit            = false,
                RequireLowercase        = false,
                RequireUppercase        = false
            };

            UserLockoutEnabledByDefault          = true;
            DefaultAccountLockoutTimeSpan        = TimeSpan.FromMinutes(5);
            MaxFailedAccessAttemptsBeforeLockout = 5;

            if (_dataProtectionProvider == null)
            {
                return;
            }

            var dataProtector = _dataProtectionProvider.Create("Asp.net Identity");

            UserTokenProvider = new DataProtectorTokenProvider <User, long>(dataProtector);
        }
        public void CheckStrength_Given_WeakString_ShouldReturn_Strong()
        {
            var validator = new CustomPasswordValidator();
            var result    = validator.CheckStrength(_validPassword);

            Assert.AreEqual(result, PasswordScore.Strong);
        }
Example #4
0
 //public override async Task<ApplicationUser> FindAsync(string userName, string password)
 //{
 //  return base.FindAsync(userName, password);
 //}
 public ApplicationUserManager(ApplicationDbContext context)
     : base(new UserStore <ApplicationUser>(context))
 {
     PasswordValidator  = new CustomPasswordValidator(1);
     this.UserValidator = new UserValidator <ApplicationUser>(this)
     {
         AllowOnlyAlphanumericUserNames = false
     };
 }
Example #5
0
        public ApplicationUserManager(IUserStore <ApplicationUser> store)
            : base(store)
        {
            UserValidator     = new CustomUserValidator(this);
            PasswordValidator = new CustomPasswordValidator(4);

            UserLockoutEnabledByDefault          = true;
            DefaultAccountLockoutTimeSpan        = TimeSpan.FromMinutes(5);
            MaxFailedAccessAttemptsBeforeLockout = 5;

            EmailService = new EmailService();
        }
        public void SetUp()
        {
            var dbContextOptions = new DbContextOptionsBuilder <LoginContext>()
                                   .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString())
                                   .Options;

            _loginContext = new LoginContext(dbContextOptions);

            _validator = new CustomPasswordValidator <LoginUser>(Substitute.For <ILogger <CustomPasswordValidator <LoginUser> > >(), _loginContext);

            _userManager = new UserManager <LoginUser>(Substitute.For <IUserStore <LoginUser> >(), Substitute.For <IOptions <IdentityOptions> >(), Substitute.For <IPasswordHasher <LoginUser> >()
                                                       , Substitute.For <IEnumerable <IUserValidator <LoginUser> > >(), new List <IPasswordValidator <LoginUser> >(), Substitute.For <ILookupNormalizer>(), new IdentityErrorDescriber(), Substitute.For <IServiceProvider>(),
                                                       Substitute.For <ILogger <UserManager <LoginUser> > >());
        }
        public bool PasswordTest_WrongData_FalseResult(string password)
        {
            CustomPasswordValidator customValidator = new CustomPasswordValidator();

            try
            {
                customValidator.Validate(password);
                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }
Example #8
0
        private void CreateApplicationUserManager()
        {
            ClaimsIdentityFactory = new CustomClaimsIdentityFactory();

            UserValidator = new CustomUserValidator <User, long>(this)
            {
                AllowOnlyAlphanumericUserNames = false,
                RequireUniqueEmail             = true
            };

            PasswordValidator = new CustomPasswordValidator
            {
                RequiredLength          = 5,
                RequireNonLetterOrDigit = false,
                RequireDigit            = false,
                RequireLowercase        = false,
                RequireUppercase        = false
            };

            UserLockoutEnabledByDefault          = true;
            DefaultAccountLockoutTimeSpan        = TimeSpan.FromMinutes(5);
            MaxFailedAccessAttemptsBeforeLockout = 5;

            //RegisterTwoFactorProvider("PhoneCode", new PhoneNumberTokenProvider<ApplicationUser, int>
            //{
            //    MessageFormat = "کد فعال سازی شما {0} است"
            //});
            //RegisterTwoFactorProvider("EmailCode", new EmailTokenProvider<ApplicationUser, int>
            //{
            //    Subject = "کد فعال سازی",
            //    BodyFormat = "کد فعال سازی شما {0} است"
            //});


            if (_dataProtectionProvider == null)
            {
                return;
            }

            var dataProtector = _dataProtectionProvider.Create("Asp.net Identity");

            UserTokenProvider = new DataProtectorTokenProvider <User, long>(dataProtector);
        }
        public void CheckStrength_Given_EmptyString_ShouldThrowArgumentNullException()
        {
            var validator = new CustomPasswordValidator();

            Assert.Throws <ArgumentNullException>(() => validator.CheckStrength(string.Empty));
        }