/// <summary> /// Устанавливает новый пароль пользователю. /// </summary> /// <param name="password"></param> /// <param name="user"></param> public static void SetNewPassword(SecureString password, User user) { if (!PasswordMaker.CheckPassword(password)) { return; } user.Pass = PasswordMaker.MakeHash(password, user.Salt); }
/// <summary> /// Пытается авторизовать пользователя по имени и паролю. /// </summary> /// <exception cref="NoUsernameException" /> /// <exception cref="FieldConstraintException" /> public bool TryLogin(string username, SecureString password) { var user = (from u in DB.Context.Users where u.Login == username select u).SingleOrDefault(); if (user == null) { throw new NoUsernameException(); } // сравниваем хеш пароля в базе с вычисленным по паролю if (user.Pass == PasswordMaker.MakeHash(password, user.Salt)) { CurrentUser = user; return(true); } else { throw new FieldConstraintException(); } }