示例#1
0
        public void MD5SecurityStrategyTest()
        {
            var oldHash  = "A1AFD14FE75EF537F43F5C27A4ECAFB";
            var email    = "*****@*****.**";
            var userName = "******";
            var password = "******";

            var userPassport = new UserPassport()
            {
                UserSecurity = new UserSecurity()
            };

            userPassport.Email    = email;
            userPassport.UserName = userName;
            userPassport.UserSecurity.HashAlgorithm = "MD5";
            userPassport.UserSecurity.PasswordSalt  = "829534";

            var securityStrategy = PassportSecurityProvider.LoadSecurityStrategy(userPassport.UserSecurity.HashAlgorithm);

            var hash = securityStrategy.HashPassword(password, userPassport);

            userPassport.UserSecurity.Password = hash;
            Assert.IsTrue(userPassport.UserSecurity.Password.Length > password.Length);
            Console.WriteLine("{0} => {1}", password, hash);

            var verified = securityStrategy.Verify(password, userPassport);

            Assert.IsTrue(verified);

            Assert.AreEqual(oldHash, hash);
        }
示例#2
0
        private static bool VerifyPassword(long passportId, string password, out UserPassport userPassport)
        {
            ArgumentAssertion.IsNotNull(password, "password");

            userPassport = null;
            var result = false;

            if (passportId > 0)
            {
                var passport = UserPassport.FindUserWithSecurityById(passportId);
                result = PassportSecurityProvider.Verify(password, passport);
                if (result)
                {
                    userPassport = passport;
                }
            }
            return(result);
        }
示例#3
0
 private string HashPassword(string password)
 {
     return(PassportSecurityProvider.HashPassword(password, this));
 }