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)); }
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); }