Beispiel #1
0
        public User ValidateUser(string name, string password)
        {
            var user = container.Users.Single(u => u.Name == name);
            var hasher = new PBKDF2_SHA256(password, user.PasswordSalt, IterationCount);

            byte[] passwordHash = hasher.GetBytes(PBKDF2_SHA256.StateSize * 2);
            if (passwordHash.SequenceEqual(user.PasswordHash))
                return user;
            else
                return null;
        }
Beispiel #2
0
        public void CreateUser(string name, string password)
        {
            byte[] salt = new byte[PBKDF2_SHA256.StateSize];
            rng.GetBytes(salt);
            var hasher = new PBKDF2_SHA256(password, salt, IterationCount);

            var user = new User();
            user.Name = name;
            user.PasswordHash = hasher.GetBytes(PBKDF2_SHA256.StateSize * 2);
            user.PasswordSalt = (byte[])salt.Clone();

            container.Users.AddObject(user);
            container.SaveChanges();
        }