Ejemplo n.º 1
0
        private ClaimsIdentity GetIdentity(string email, string password)
        {
            if (email == null || password == null)
            {
                return(null);
            }

            var passwordHash = PasswordCryptHelper.GetPasswordHash(password);
            var user         = ffContext.Users
                               .Include(usr => usr.Role)
                               .FirstOrDefault(u => u.Email == email && u.PasswordHash == passwordHash);

            if (user == null)
            {
                return(null);
            }

            var claims = new List <Claim>
            {
                new Claim(ClaimsIdentity.DefaultNameClaimType, user.Email),
                new Claim(ClaimsIdentity.DefaultRoleClaimType, user.Role.Name),
                new Claim("Id", user.Id),
                new Claim("FirstName", user.FirstName),
                new Claim("LastName", user.LastName)
            };

            return
                (new ClaimsIdentity(claims, "Token", ClaimsIdentity.DefaultNameClaimType,
                                    ClaimsIdentity.DefaultRoleClaimType));
        }
Ejemplo n.º 2
0
        public UserOut Register(UserRegisterIn dtoUser)
        {
            var existedUser = ffContext.Users.FirstOrDefault(usr => usr.Email == dtoUser.Email);

            if (existedUser != null)
            {
                throw new ArgumentException("email");
            }

            UserRole role;

            if (string.IsNullOrWhiteSpace(dtoUser.RoleId))
            {
                role = ffContext.Roles.FirstOrDefault(r => r.Name == "Клиент");
            }
            else
            {
                role = ffContext.Roles.FirstOrDefault(r => r.Id == dtoUser.RoleId);
            }

            if (role == null)
            {
                throw new ArgumentException("roleId");
            }

            var config = new MapperConfiguration(cfg => cfg.CreateMap <UserRegisterIn, User>());
            var mapper = config.CreateMapper();

            var user = mapper.Map <User>(dtoUser);

            user.PasswordHash = PasswordCryptHelper.GetPasswordHash(dtoUser.Password);
            user.Role         = role;

            ffContext.Users.Add(user);
            ffContext.SaveChanges();

            user = ffContext.Users.FirstOrDefault(u => u.Id == user.Id);
            var userOut = mapper.Map <UserOut>(user);

            return(userOut);
        }