Пример #1
0
        public ActionResult Register(RegisterDto registerDto)
        {
            if (!ModelState.IsValid)
            {
                return(View(registerDto));
            }

            if (registerDto.RepeatedPassword != registerDto.Password)
            {
                ModelState.AddModelError(nameof(registerDto.Password), "Пароли не совпадают");
                ModelState.AddModelError(nameof(registerDto.RepeatedPassword), "Пароли не совпадают");
                return(View(registerDto));
            }

            var existedUser = UserDataStore.GetAll()
                              .SingleOrDefault(user => user.Login == registerDto.Login && user.PasswordHash == string.Empty);

            if (existedUser == null)
            {
                ModelState.AddModelError(nameof(registerDto.Login),
                                         "Данный логин недоступен, обратитесь к администратору");
                return(View(registerDto));
            }

            existedUser.PasswordHash = PasswordHashService.GetHash(registerDto.Password);
            UserDataStore.Update(existedUser);

            return(RedirectToAction("Index"));
        }
Пример #2
0
        public User GetCurrentUser()
        {
            var principal = AuthenticationService.CurrentUserPrincipal;

            if (!principal.Identity.IsAuthenticated)
            {
                return(null);
            }

            var login = principal.Identity.Name;

            return(UserDataStore.GetAll().SingleOrDefault(user => user.Login == login));
        }
Пример #3
0
        public User Login(LoginPassDto loginPasswordDto)
        {
            var passHash = PasswordHashService.GetHash(loginPasswordDto.Password);
            var user     = UserDataStore.GetAll()
                           .SingleOrDefault(u => u.Login == loginPasswordDto.Login && u.PasswordHash == passHash);

            if (user != null)
            {
                CreateCookie(user, loginPasswordDto.RememberMe);
            }

            return(user);
        }