public bool IsEmailExist(string emailID) { using (CodeHubDatabaseEntities cd = new CodeHubDatabaseEntities()) { var v = cd.Users.Where(a => a.EmailID.Equals(emailID)).FirstOrDefault(); return(v != null);//return v == null ? false : true; } }
public ActionResult Registration([Bind(Exclude = "IsEmailVerified,ActivationCode")] User user) //bind exclude ce //iskljuciti navedene parametre i nece ih cuvati na serveru,kako bi obeezbedili sigurnost { //takodje necemo unositi ove parametre!!!!! bool status = false; string message = null; //Model Validation if (ModelState.IsValid) { bool isExist = IsEmailExist(user.EmailID); if (isExist)//Email is already exist { ModelState.AddModelError("EmailExist", "Email already exist"); return(View(user)); } //Generate Activation Code user.ActivationCode = Guid.NewGuid(); //creates a new GUID using an algorithm that is designed to //make collisions very, very unlikely. 7c9e6679-7425-40de-944b-e07fc1f90ae7 for example user.IsEmailVerified = false; //Save data to Database using (CodeHubDatabaseEntities cd = new CodeHubDatabaseEntities()) { //Send Email to User if (SendVerificationLinkEmail(user.EmailID, user.ActivationCode.ToString())) { cd.Users.Add(user); cd.SaveChanges(); } message = "Registration sucessfully done. Activation link " + "has been sent to your email id:" + user.EmailID; status = true; } } else { message = "invalid request"; } ViewBag.Message = message; ViewBag.Status = status; return(View(user)); }
public ActionResult Login(UserLogin login, string returnUrl) { string message = null; using (CodeHubDatabaseEntities cd = new CodeHubDatabaseEntities()) { User v = cd.Users.Where(a => a.EmailID.Equals(login.EmailID)).FirstOrDefault(); if (v != null) { if (v.IsEmailVerified == true && string.Compare(login.Password, v.Password) == 0) { int timeout = login.RememberMe ? 525600 : 20;//525600 min is 1 year var ticket = new FormsAuthenticationTicket(login.EmailID, login.RememberMe, timeout); string encrypted = FormsAuthentication.Encrypt(ticket); var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encrypted) { Expires = DateTime.Now.AddMinutes(timeout), HttpOnly = true }; Response.Cookies.Add(cookie); if (Url.IsLocalUrl(returnUrl)) { return(Redirect(returnUrl)); } else { return(RedirectToAction("Welcome", User));//ovde baca na zeljenu stranicu(view) } } else { message = "Invalid credential provided"; } } } ViewBag.Message = message; return(View()); }
[HttpGet]//Verify Email LINK public ActionResult VerifyAccount(string id) { bool Status = false; using (CodeHubDatabaseEntities cd = new CodeHubDatabaseEntities()) { cd.Configuration.ValidateOnSaveEnabled = false;//this line i have added here to avoid confirm pass doesnt match isssue on save changes var v = cd.Users.Where(a => a.ActivationCode == new Guid(id)).FirstOrDefault(); if (v != null) { v.IsEmailVerified = true; cd.SaveChanges(); Status = true; } else { ViewBag.Message = "Invalid request"; } } ViewBag.Status = Status; return(View()); }