public HttpResponseMessage Post(UserCredentialsVM userCredentials) { try { #region//Email already exists var isExists = registrationInfo.IsEmailExist(userCredentials.Email); if (isExists) { return(Request.CreateErrorResponse(HttpStatusCode.Ambiguous, "Email already Exists in please change email")); } #endregion #region//Save Data to Database bool status = registrationInfo.InsertRegistrationInfo(userCredentials); #endregion if (status) { return(Request.CreateResponse(HttpStatusCode.OK, "Registration successfull please verify through email")); } else { return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Registration unsuccessfull")); } } catch (Exception ex) { return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex)); } }
public bool InsertRegistrationInfo(UserCredentialsVM userCredentials) { try { bool status = false; #region//Save Data To Database using (TrainingAppEntities1 dc = new TrainingAppEntities1()) { User user = new User(); user.FirstName = userCredentials.FirstName; user.LastName = userCredentials.LastName; user.IsActive = true; user.RoleId = 1; user.CreatedAt = DateTime.Now; user.UpdatedAt = DateTime.Now; var obj = dc.Users.Add(user); dc.SaveChanges(); #region//Taking data fromviewmodel and assigning to database entity UserCredential credentials = new UserCredential(); credentials.Email = userCredentials.Email; #region//Generate Activation credentials.ActivationCode = Guid.NewGuid(); #endregion #region//Password Hashing credentials.Password = Crypto.Hash(userCredentials.Password); #endregion credentials.IsActivated = true; credentials.IsEmailVerified = false; credentials.UserId = obj.UserId; dc.UserCredentials.Add(credentials); dc.SaveChanges(); #endregion #region//Send Email to User SendVerificationLinkEmail(userCredentials.Email, credentials.ActivationCode.ToString()); #endregion status = true; } #endregion return(status); } catch (Exception ex) { throw ex; } }
private bool ValidateCredentials(UserCredentialsVM userCredentialsVM) { bool isValid = true; try { MailAddress email = new MailAddress(userCredentialsVM.Email); } catch (Exception) { isValid = false; } if (string.IsNullOrWhiteSpace(userCredentialsVM.Password)) { isValid = false; } return(isValid); }
public ActionResult Index(UserCredentialsVM userCredentialsVM) { if (!ValidateCredentials(userCredentialsVM)) { return(View()); } User user = _userRepository.GetByCredentials(userCredentialsVM.Email, userCredentialsVM.Password); if (user == null) { ModelState.AddModelError("credentials", "Invalid username or password"); return(View()); } SessionManager.CurentUserContext = Mapper.Map <User, UserContext>(user); List <Claim> claims = new List <Claim>(); claims.Add(new Claim(ClaimTypes.Name, user.Email)); if (SessionManager.CurentUserContext.IsAdmin) { claims.Add(new Claim(ClaimTypes.Role, Roles.Admin)); } if (SessionManager.CurentUserContext.IsActive) { claims.Add(new Claim(ClaimTypes.Role, Roles.User)); } if (SessionManager.CurentUserContext.IsUploader) { claims.Add(new Claim(ClaimTypes.Role, Roles.Uploader)); } var identity = new ClaimsIdentity(claims.ToArray <Claim>(), DefaultAuthenticationTypes.ApplicationCookie); HttpContext.GetOwinContext().Authentication.SignIn(new AuthenticationProperties { IsPersistent = userCredentialsVM.RememberMe }, identity); return(RedirectToAction(MVCManager.Controller.Home.Index)); }