public ActionResult Login(LoginViewModel model, string returnUrl) { if (!ModelState.IsValid) { return View(model); } string mdpCrypte = Cryptage.getMd5Hash(model.Password); using (Data db = new Data()) { var utilisateur = (from u in db.Users where (u.Email == model.Account || u.UserName == model.Account) && u.Password == mdpCrypte select u).FirstOrDefault(); if (utilisateur != null) { var claims = new List<Claim> { new Claim(ClaimTypes.Sid, utilisateur.ID.ToString()), new Claim(ClaimTypes.Name, utilisateur.UserName), new Claim(ClaimTypes.Email, utilisateur.Email), new Claim(ClaimTypes.NameIdentifier, Guid.NewGuid().ToString() + utilisateur.ID.ToString()) }; var identity = new ClaimsIdentity(claims, "ApplicationCookie", ClaimTypes.Name, ClaimTypes.Role); var owinContext = HttpContext.GetOwinContext(); owinContext.Authentication.SignIn(identity); return RedirectToAction(returnUrl); } ModelState.AddModelError("", "Tentative de connexion non valide."); return View(model); } }
// // GET: /Manage/Index public ActionResult Index() { ClaimsIdentity identity = (ClaimsIdentity)User.Identity; Claim sid = identity.FindFirst(ClaimTypes.Sid); var userId = int.Parse(sid.Value); using(Data db = new Data()) { var utilisateur = (from u in db.Users where u.ID == userId select u).FirstOrDefault(); if( utilisateur != null) { var model = new IndexViewModel { UserName = utilisateur.UserName, Email = utilisateur.Email }; return View(model); } } return RedirectToAction("/Home/Index"); }
public ActionResult ChangePassword(ChangePasswordViewModel model) { if (!ModelState.IsValid) { return View(model); } ClaimsIdentity identity = (ClaimsIdentity)User.Identity; Claim sid = identity.FindFirst(ClaimTypes.Sid); var userId = int.Parse(sid.Value); using (Data db = new Data()) { var utilisateur = (from u in db.Users where u.ID == userId select u).FirstOrDefault(); if (utilisateur != null) { utilisateur.Password = Cryptage.getMd5Hash(model.ConfirmPassword); return View(model); } } return View(model); }
public ActionResult Register(RegisterViewModel model) { if (ModelState.IsValid) { var user = new User(); user.UserName = model.UserName; user.Email = model.Email; user.Password = Cryptage.getMd5Hash(model.Password); using (Data db = new Data()) { db.Users.Add(user); db.SaveChanges(); return RedirectToAction("Login", "Account"); } } // Si nous sommes arrivés là, un échec s’est produit. Réafficher le formulaire return View(model); }
public ActionResult ResetPassword(ResetPasswordViewModel model) { if (!ModelState.IsValid) { return View(model); } using(Data db = new Data()) { var utilisateur = (from u in db.Users where u.Email == model.Email select u).FirstOrDefault(); if( utilisateur != null) { string mdp = System.Web.Security.Membership.GeneratePassword(8, 2); utilisateur.Password = Cryptage.getMd5Hash(mdp); db.SaveChanges(); ViewBag.Resultat = string.Format("Un nouveau mot de passe à été généré : {0}. Vous pouvez maintenant vous connecter avec ce mot de passe.", mdp); return RedirectToAction("/Account/Login"); } } return View(); }