Beispiel #1
0
        internal EmailResult VerfiyHmEMail(ConfirmEmailMailModel model)
        {
            To.Add(model.User.Email);
            Subject = "Bestätigung Studierender der HM";

            return(Email("VerifyHmEMail", model));
        }
Beispiel #2
0
        /// <summary>
        /// Validierung einer E-Mail Adresse
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        internal EmailResult VerfiyEMail(ConfirmEmailMailModel model)
        {
            To.Add(model.User.Email);
            Subject = "Ihre Registrierung bei NINE";

            return(Email("VerifyEMail", model));
        }
Beispiel #3
0
        internal EmailResult VerfiyHmEMail(ConfirmEmailMailModel model)
        {
            InitSenderTopic(MAIL_SECTION_ACCOUNT);

            To.Add(model.User.Email);
            Subject = "Bestätigung Studierender der HM";

            return(Email("VerifyHmEMail", model));
        }
Beispiel #4
0
        /// <summary>
        /// Validierung einer E-Mail Adresse
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        internal EmailResult VerfiyEMail(ConfirmEmailMailModel model)
        {
            InitSenderTopic(MAIL_SECTION_ACCOUNT);

            To.Add(model.User.Email);
            Subject = "Ihre Registrierung bei NINE";

            return(Email("VerifyEMail", model));
        }
Beispiel #5
0
        internal EmailResult ChangeEMail(ConfirmEmailMailModel model)
        {
            // Die geänderte E-Mail Adresse steht in den Bemerkungen
            // und wird erst bei Bestätigung übertragen
            To.Add(model.User.Remark);
            Subject = "Änderung der E-Mail Adresse bei NINE";

            return(Email("ChangeEMail", model));
        }
Beispiel #6
0
        public PartialViewResult SendVerificationMail(string hmemail)
        {
            bool IsHM = hmemail.ToLower().EndsWith("@hm.edu");

            if (IsHM)
            {
                var user = UserManager.FindByEmail(hmemail.ToLower());
                var me   = UserManager.FindByName(User.Identity.Name);

                if (user == null)
                {
                    // Adresse noch nicht vergeben => E-Mail versenden
                    string code = UserManager.GenerateEmailConfirmationToken(me.Id);
                    //var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);

                    // das mache ich wieder selber
                    //await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>");

                    var mailModel = new ConfirmEmailMailModel
                    {
                        User  = me,
                        Token = code,
                    };

                    new MailController().VerfiyHmEMail(mailModel).Deliver();


                    return(PartialView("_SuccessMailSent"));
                }
                else
                {
                    if (user.Id.Equals(me.Id))
                    {
                        // unwahrscheinlich, das darf nicht passieren, wenn doch dann E-Mail versenden
                        return(PartialView("_Error"));
                    }
                    else
                    {
                        // Fehlermeldung "E-Mail Adresse bereits vergeben"
                        return(PartialView("_ErrorMailTaken"));
                    }
                }
            }
            else
            {
                // keine hm.edu Adresse
                return(PartialView("_ErrorInvalidMail"));
            }
        }
Beispiel #7
0
        public ActionResult ChangeEMail(ChangeEMailModel model)
        {
            var user = UserManager.FindById(User.Identity.GetUserId());

            ViewBag.User = user;

            if (user.Email.ToLower().Equals(model.EMail.ToLower()))
            {
                ModelState.AddModelError("EMail", "Das ist Ihre bisherige Adresse");
                return(View(model));
            }

            var existingUser = UserManager.FindByEmail(model.EMail);

            if (existingUser != null)
            {
                ModelState.AddModelError("EMail", "Ungültige E-Mail Adresse");
                return(View(model));
            }


            user.Remark = model.EMail;
            UserManager.Update(user);

            var mailModel = new ConfirmEmailMailModel
            {
                User  = user,
                Token = "",
            };

            try
            {
                new MailController().ChangeEMail(mailModel).Deliver();
            }
            catch (SmtpFailedRecipientException exSmtp)
            {
                ModelState.AddModelError("EMail", "Fehler bei Zustellung: " + exSmtp.Message);

                user.Remark = string.Empty;
                UserManager.Update(user);

                return(View(model));
            }


            return(RedirectToAction("Index"));
        }
Beispiel #8
0
        public async Task <ActionResult> CheckEMail(CheckEMailViewModel model)
        {
            var user = UserManager.FindById(model.UserId);

            if (user != null)
            {
                // der Benutzer hat seine E-Mail Adresse nicht verändert
                if (user.Email.ToLower().Equals(model.EMail.ToLower()))
                {
                    // es passiert nix
                }
                else
                {
                    // der Benutzer hat seine E-Mail Adresse verändert
                    // prüfen, ob es diese Adresse bereits gibt
                    var user2 = UserManager.FindByEmail(model.EMail);
                    if (user2 != null)
                    {
                        ModelState.AddModelError("EMail", "Es existiert bereits ein Benutzerkonto für diese E-Mail Adresse");
                        return(View(model));
                    }
                    // neue E-Mail Adresse setzen
                    UserManager.SetEmail(model.UserId, model.EMail);
                }


                // Jetzt eine neue Mail senden
                string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);

                var mailModel = new ConfirmEmailMailModel
                {
                    User  = user,
                    Token = code
                };

                new MailController().VerfiyEMail(mailModel).Deliver();

                return(RedirectToAction("RegisterSuccess", model));
            }
            else
            {
                ModelState.AddModelError("EMail", "Das Benutzerkonto existiert nicht!");
                return(View(model));
            }
        }
Beispiel #9
0
        public async Task <ActionResult> Register(RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                var now  = DateTime.Now;
                var user = new ApplicationUser
                {
                    UserName    = model.Email,
                    Email       = model.Email,
                    FirstName   = model.FirstName,
                    LastName    = model.LastName,
                    Registered  = now,
                    MemberState = model.Email.ToLower().EndsWith("@hm.edu") ? MemberState.Student : MemberState.Guest,
                    Remark      = "Abschluss Registrierung steht aus",
                    ExpiryDate  = DateTime.Today.AddDays(14),
                    Submitted   = now
                };
                var result = await UserManager.CreateAsync(user, model.Password);

                if (result.Succeeded)
                {
                    // nicht automatisch anmelden, sondern auf Nachrichtenseite weiterleiten
                    //await SignInManager.SignInAsync(user, isPersistent: false, rememberBrowser: false);

                    // For more information on how to enable account confirmation and password reset please visit http://go.microsoft.com/fwlink/?LinkID=320771
                    // Send an email with this link
                    string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);

                    var mailModel = new ConfirmEmailMailModel
                    {
                        User  = user,
                        Token = code,
                    };

                    try
                    {
                        new MailController().VerfiyEMail(mailModel).Deliver();

                        var modelSuccess = new RegisterSuccessViewModel
                        {
                            Email      = model.Email,
                            ExpiryDate = user.ExpiryDate.Value,
                        };

                        // Bestätigungs E-Mail senden und Bestätigungsseite senden
                        return(RedirectToAction("RegisterSuccess", modelSuccess));
                    }
                    catch (SmtpFailedRecipientException exSmtp)
                    {
                        ModelState.AddModelError("Email", "Fehler bei Zustellung: " + exSmtp.Message);
                        return(View(model));
                    }


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

            // If we got this far, something failed, redisplay form
            return(View(model));
        }