Exemplo n.º 1
0
        public async Task <ActionResult> AddPhoneNumber(RegisterPhoneNumberViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            try
            {
                var code = await UserManager.GenerateChangePhoneNumberTokenAsync(model.Id, model.Number);

                if (UserManager.SmsService != null)
                {
                    var message = new IdentityMessage
                    {
                        Destination = model.Number,
                        Body        = "Välkommen till Socialstyrelsens Inrapporteringsportal. För att registrera dig ange följande verifieringskod på webbsidan: " + code
                    };
                    await UserManager.SmsService.SendAsync(message);
                }
                return(RedirectToAction("VerifyPhoneNumber", new { PhoneNumber = model.Number, Id = model.Id }));
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                ErrorManager.WriteToErrorLog("AccountController", "Register", e.ToString(), e.HResult, model.Id);
                var errorModel = new CustomErrorPageModel
                {
                    Information  = "Ett fel inträffade vid registreringen.",
                    ContactEmail = ConfigurationManager.AppSettings["ContactEmail"],
                };
                return(View("CustomError", errorModel));
            }
        }
Exemplo n.º 2
0
        public ActionResult AddPhoneNumber(string id = "")
        {
            var model = new RegisterPhoneNumberViewModel();

            model.Id = id;
            return(View(model));
        }
Exemplo n.º 3
0
        public async Task <ActionResult> ConfirmEmail(string userId, string code)
        {
            if (userId == null || code == null)
            {
                return(View("Error"));
            }
            var result = await UserManager.ConfirmEmailAsync(userId, code);

            if (result.Succeeded)
            {
                var user  = UserManager.FindById(userId);
                var model = new RegisterPhoneNumberViewModel();
                model.Id = userId;
                return(View("ConfirmEmail", model));
            }
            else
            {
                var str = String.Empty;
                foreach (var error in result.Errors)
                {
                    str = str + error + ", ";
                }
                Console.WriteLine(str);
                ErrorManager.WriteToErrorLog("AccountController", "ConfirmEmail", str, 0, userId);
                var errorModel = new CustomErrorPageModel
                {
                    Information  = "Ett fel inträffade vid verifieringen av epostadressen.",
                    ContactEmail = ConfigurationManager.AppSettings["ContactEmail"],
                };
                return(View("CustomError", errorModel));
            }
        }
Exemplo n.º 4
0
        public async Task <ActionResult> Login(LoginViewModel model, string returnUrl)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }
            try
            {
                //Kolla om öppet, annars visa stängt-sida
                if (!_portalService.IsOpen())
                {
                    ViewBag.Text = _portalService.HamtaInformationsText("Stangtsida");
                    return(View("Closed"));
                }
                //Add this to check if the email was confirmed.
                var user = await UserManager.FindByNameAsync(model.Email);

                if (user == null)
                {
                    ModelState.AddModelError("", "Felaktigt användarnamn eller pinkod.");
                    return(View(model));
                }
                //Check if users organisation or user has been disabled
                var userOrg = _portalService.HamtaOrgForAnvandare(user.Id);
                if (userOrg.AktivTom <= DateTime.Now)
                {
                    ModelState.AddModelError("", "Organisationen " + userOrg.Organisationsnamn + " är inaktiv, ta kontakt med " + ConfigurationManager.AppSettings["MailSender"]);
                    return(View(model));
                }
                else if (user.AktivTom <= DateTime.Now)
                {
                    model.DisabledAccount = true;
                    ModelState.AddModelError("", "Kontot är inaktiverat. För att återaktivera ditt konto behöver du verifiera din e-postadress.");
                    return(View(model));
                }
                if (!await UserManager.IsEmailConfirmedAsync(user.Id))
                {
                    ModelState.AddModelError("", "Du behöver bekräfta din epostadress. Se mejl från [email protected]");
                    return(View(model));
                }
                // This doesn't count login failures towards account lockout
                // To enable password failures to trigger account lockout, change to shouldLockout: true
                var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe,
                                                                     shouldLockout : false);

                switch (result)
                {
                case SignInStatus.Success:
                    //var user = UserManager.FindByEmail(model.Email);
                    _portalService.SaveToLoginLog(user.Id, user.UserName);
                    return(RedirectToLocal(returnUrl));

                case SignInStatus.LockedOut:
                    return(View("Lockout"));

                case SignInStatus.RequiresVerification:
                    if (!await UserManager.IsPhoneNumberConfirmedAsync(user.Id))
                    {
                        var phoneNumber = UserManager.GetPhoneNumberAsync(user.Id);
                        //Skicka användaren till AddPhoneNumber
                        var phoneNumberModel = new RegisterPhoneNumberViewModel()
                        {
                            Id     = user.Id,
                            Number = phoneNumber.Result
                        };
                        if (phoneNumberModel.Number == null)
                        {
                            return(View("AddPhoneNumber", phoneNumberModel));
                        }
                        else
                        {
                            return(await this.AddPhoneNumber(phoneNumberModel));
                        }
                    }
                    else
                    {
                        return(RedirectToAction("SendCode", new SendCodeViewModel
                        {
                            Providers = null,
                            ReturnUrl = returnUrl,
                            RememberMe = model.RememberMe,
                            SelectedProvider = "Phone Code",
                            UserEmail = model.Email
                        }));
                    }

                case SignInStatus.Failure:
                default:
                    ModelState.AddModelError("", "Felaktigt användarnamn eller pinkod.");
                    return(View(model));
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                ErrorManager.WriteToErrorLog("AccountController", "Login", e.ToString(), e.HResult, model.Email);
                var errorModel = new CustomErrorPageModel
                {
                    Information  = "Ett fel inträffade vid inloggningen",
                    ContactEmail = ConfigurationManager.AppSettings["ContactEmail"],
                };
                return(View("CustomError", errorModel));
            }
        }
Exemplo n.º 5
0
 public ActionResult AreYouSurePhoneNumber(RegisterPhoneNumberViewModel model)
 {
     return(View("AreYouSurePhoneNumber", model));
 }