示例#1
0
        public static void SendEmailMessage(ApplicationUser user, string url)
        {
            var from = new MailAddress("*****@*****.**", "Web Registration");
            var to = new MailAddress(user.Email);
            var mailMessage = new MailMessage(@from, to)
            {
                Subject = "Подтверждение регистрации по Email",
                Body = string.Format("Для завершения регистрации перейдите по ссылке:" + " " +
                                     "<a href=\"{0}\" title=\"Подтвердить регистрацию\">{0}</a>",
                    url + "#/Register?" + "Id=" + user.Id + "&email=" + user.Email),
                IsBodyHtml = true
            };

            var smtp = new SmtpClient("smtp.mail.ru", 25)
            {
                EnableSsl = true,
                Credentials = new System.Net.NetworkCredential("*****@*****.**", "3323876may1993")
            };
            smtp.Send(mailMessage);
        }
示例#2
0
        public static UserViewModel ToUserViewModel(ApplicationUser user)
        {
            Mapper.CreateMap<ApplicationUser, UserViewModel>();
            var userView = Mapper.Map<ApplicationUser, UserViewModel>(user);

            return userView;
        }
示例#3
0
        public async Task<ActionResult> ExternalLoginConfirmation(ExternalLoginConfirmationViewModel model, string returnUrl)
        {
            if (User.Identity.IsAuthenticated)
            {
                return RedirectToAction("Index", "Manage");
            }

            if (ModelState.IsValid)
            {
                // Obtenez des informations sur l’utilisateur auprès du fournisseur de connexions externe
                var info = await AuthenticationManager.GetExternalLoginInfoAsync();
                if (info == null)
                {
                    return View("ExternalLoginFailure");
                }
                var user = new ApplicationUser { UserName = model.Email, Email = model.Email };
                var result = await UserManager.CreateAsync(user);
                if (result.Succeeded)
                {
                    result = await UserManager.AddLoginAsync(user.Id, info.Login);
                    if (result.Succeeded)
                    {
                        await SignInManager.SignInAsync(user, isPersistent: false, rememberBrowser: false);
                        return RedirectToLocal(returnUrl);
                    }
                }
                AddErrors(result);
            }

            ViewBag.ReturnUrl = returnUrl;
            return View(model);
        }
示例#4
0
        public async Task<ActionResult> Register(RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = new ApplicationUser { UserName = model.Email, Email = model.Email };
                var result = await UserManager.CreateAsync(user, model.Password);
                if (result.Succeeded)
                {
                    await SignInManager.SignInAsync(user, isPersistent: false, rememberBrowser: false);                    
                    var utilisateur = new Utilisateurs();
                    var ville = db.Villes.Where(v => v.CodeINSEE == model.CodeVille).FirstOrDefault();
                    var adresse = new Adresses();
                    var identite = new Identites();
                    /*Ici nous prenons en compte nos tables pour les alimenter en même temps que l'EF génère automatiquement un utilisateur*/
                    identite.Email = model.Email;
                    identite.Nom = model.Nom;
                    identite.Prenom = model.Prenom;
                    adresse.CodeINSEE = ville.CodeINSEE;
                    adresse.CodePostal = ville.ZipCodes.FirstOrDefault().CodePostal;
                    adresse.Ligne1 = model.Adresse1;
                    adresse.Ligne2 = model.Adresse2;
                    adresse.Ligne3 = model.Adresse3;
                    utilisateur.Adresses = adresse;
                    utilisateur.IdAsp = db.AspNetUsers.Where(u => u.Email == model.Email).FirstOrDefault().Id;
                    utilisateur.DateInscription = DateTime.Now;
                    utilisateur.Identites = identite;
                    if (model.subscribeToNewsletter == "on")
                    { identite.Newsletter = 1; }
                    else { identite.Newsletter = 0; }
                    db.Utilisateurs.Add(utilisateur);
                    db.SaveChanges();
                    // Pour plus d'informations sur l'activation de la confirmation du compte et la réinitialisation du mot de passe, consultez http://go.microsoft.com/fwlink/?LinkID=320771
                    // Envoyer un message électronique avec ce lien
                    // string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);
                    // var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
                    // await UserManager.SendEmailAsync(user.Id, "Confirmez votre compte", "Confirmez votre compte en cliquant <a href=\"" + callbackUrl + "\">ici</a>");

                    return RedirectToAction("Index", "Home");
                }
                AddErrors(result);
            }

            // Si nous sommes arrivés là, un échec s’est produit. Réafficher le formulaire (il faut donc recharger la liste des régions)
            RegisterViewModel rvm = new RegisterViewModel();
            rvm.RegionsDepartements = db.RegionsFR.OrderBy(r => r.Nom)
               .ToDictionary(r => r.Nom,
               r => r.Departements.OrderBy(d => d.Nom)
                   .ToDictionary(d => d.NumDep, d => d.Nom)
                   );
            
            return View(rvm);
        }
示例#5
0
        public async Task<ActionResult> Register(RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = new ApplicationUser { UserName = model.Email, Email = model.Email };
                var adresse = new DataLayer.Models.Adresses()
                {
                    CodePostal = model.CodePostal,
                    Ligne1 = model.Ligne1,
                    Ligne2 = model.Ligne2
                };
                var identity = new DataLayer.Models.Identites()
                {
                    Identifiant = "kempfu",
                    Nom = model.Nom,
                    Prenom = model.Prenom
                };
                var utilisateur = new DataLayer.Models.Utilisateurs()
                {
                    DateInscription = DateTime.Now,
                    IdAdresse = 0
                };
                var result = await UserManager.CreateAsync(user, model.Password);
                if (result.Succeeded)
                {
                    _db.Adresses.Add(adresse);
                    identity.IdUser = _db.AspNetUsers.Where(a => a.Email == model.Email).Select(a => a.Id).FirstOrDefault();
                    _db.Identites.Add(identity);
                    _db.SaveChanges();

                    utilisateur.IdAdresse = adresse.IdAdresse;
                    utilisateur.IdUtilisateur = identity.IdIdentite;
                    _db.Utilisateurs.Add(utilisateur);
                    _db.SaveChanges();
                    if (model.Newsletter)
                    {
                        var ni = new DataLayer.Models.NewsletterInscrits()
                        {
                            idInscrit = utilisateur.IdUtilisateur
                        };
                        _db.NewsletterInscrits.Add(ni);
                        _db.SaveChanges();
                    }
                    await SignInManager.SignInAsync(user, isPersistent: false, rememberBrowser: false);

                    // Pour plus d'informations sur l'activation de la confirmation du compte et la réinitialisation du mot de passe, consultez http://go.microsoft.com/fwlink/?LinkID=320771
                    // Envoyer un message électronique avec ce lien
                    // string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);
                    // var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
                    // await UserManager.SendEmailAsync(user.Id, "Confirmez votre compte", "Confirmez votre compte en cliquant <a href=\"" + callbackUrl + "\">ici</a>");

                    return RedirectToAction("Index", "Home");
                }
                AddErrors(result);
            }

            // Si nous sommes arrivés là, un échec s’est produit. Réafficher le formulaire
            return View(model);
        }
示例#6
0
        public async Task<ActionResult> Register(RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = new ApplicationUser { UserName = model.Email, Email = model.Email };
                var result = await UserManager.CreateAsync(user, model.Password);
                
                

                if (result.Succeeded)
                {
                    var db = new Form115Entities();
                    var idtt = new Utilisateurs { Nom = model.Nom, Prenom = model.Prenom, InscritLettreInfo = model.Reponse, IdAspNetUsers = user.Id };
                    db.Utilisateurs.Add(idtt);
                    await SignInManager.SignInAsync(user, isPersistent: false, rememberBrowser: false);

                    // Pour plus d'informations sur l'activation de la confirmation du compte et la réinitialisation du mot de passe, consultez http://go.microsoft.com/fwlink/?LinkID=320771
                    // Envoyer un message électronique avec ce lien
                    // string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);
                    // var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
                    // await UserManager.SendEmailAsync(user.Id, "Confirmez votre compte", "Confirmez votre compte en cliquant <a href=\"" + callbackUrl + "\">ici</a>");

                    db.SaveChanges();
                    return RedirectToAction("Index", "Home");
                }
                AddErrors(result);
            }

            // Si nous sommes arrivés là, un échec s’est produit. Réafficher le formulaire
            return View(model);
        }
示例#7
0
        public async Task<JsonResult> Register(RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = new ApplicationUser
                {
                    UserName = model.UserName,
                    LastActivity = DateTime.Now,
                    Email = model.Email,
                    AvatarFilePath = FilePathContainer.ImagePathRelative + "DefaultAvatar.png",
                    EmailConfirmed = false,
                    FirstName = model.FirstName,
                    LastName = model.LastName
                };
                try
                {
                    var result = await UserManager.CreateAsync(user, model.Password);
                    if (result.Succeeded)
                    {
                        User.Identity.GetUserId();
                        if (Request.Url != null) MailSender.SendEmailMessage(user,Request.Url.Authority);

                        return Json(new LoginResult { Success = true, EmailSended = true });
                    }
                    return Json(new LoginResult { Success = false, Message = "Ошибка при регистрации" });
                }
                catch (Exception exp)
                {
                    return Json(new LoginResult { Success = false, Message = exp.Message });
                }
            }
            return Json(new LoginResult { Success = false, Message = ModelState.Values.ToString() });
        }
示例#8
0
 private async Task SignInAsync(ApplicationUser user, bool isPersistent)
 {
     AuthenticationManager.SignOut(DefaultAuthenticationTypes.ExternalCookie);
     var identity = await UserManager.CreateIdentityAsync(user, DefaultAuthenticationTypes.ApplicationCookie);
     AuthenticationManager.SignIn(new AuthenticationProperties() { IsPersistent = isPersistent }, identity);
 }