コード例 #1
0
        public IActionResult Registration()
        {
            HttpContext.Session.Remove("UserId");
            AccountRegisterVM vm = new AccountRegisterVM();

            return(View(vm));
        }
コード例 #2
0
        public async Task <IActionResult> Register(AccountRegisterVM viewModel)
        {
            if (!ModelState.IsValid)
            {
                return(View(viewModel));
            }

            var user = new IdentityUser();

            user.Email    = viewModel.Email;
            user.UserName = viewModel.Email;
            var result = await userManager.CreateAsync(user, viewModel.Password);

            if (!result.Succeeded)
            {
                if (result.ToString().Contains("DuplicateEmail"))
                {
                    ModelState.AddModelError(nameof(AccountRegisterVM.Email), "E-posten är redan registrerad");
                }

                if (result.ToString().Contains("DuplicateUserName"))
                {
                    ModelState.AddModelError(nameof(AccountRegisterVM.Email), "E-posten är redan registrerad");
                }
                return(View(viewModel));
            }

            mysticoContext.AddUser(user.Id, viewModel.FirstName, viewModel.LastName, viewModel.Email);

            await signInManager.PasswordSignInAsync(user, viewModel.Password, false, false);

            return(RedirectToAction(nameof(SplitController.Index), nameof(SplitController).Replace("Controller", "")));
        }
コード例 #3
0
        public async Task <IActionResult> Registration(AccountRegisterVM userData)
        {
            if (ModelState.IsValid)
            {
                string uri         = $"{baseuri}/users/username/{userData.UserName}";
                User   currentUser = await WebApiHelper.GetApiResult <User>(uri);

                if (currentUser == null)//user bestaat nog niet
                {
                    User newUser = new User()
                    {
                        FirstName    = userData.FirstName,
                        LastName     = userData.LastName,
                        UserName     = userData.UserName,
                        PasswordHash = userData.Password
                    };
                    pH.HashPassword(newUser, newUser.PasswordHash);//het paswoord van de user wordt binnen deze functie vervangen
                    uri = $"{baseuri}/users";
                    User AddedUser = await WebApiHelper.PostCallAPI <User, User>(uri, newUser);

                    HttpContext.Session.SetString("UserId", AddedUser.Id.ToString());
                    return(new RedirectToActionResult("RegisterSuccess", "Account", null));
                }
                else
                {
                    ModelState.AddModelError(string.Empty, "A trainer with that username already exists");
                    return(View(userData));
                }
            }
            else
            {
                return(View(userData));
            }
        }
コード例 #4
0
        internal async Task <IdentityResult> TryCreateCompanyAsync(AccountRegisterVM vm)
        {
            var result = await userManager.CreateAsync(new CompanyUser
            {
                UserName = vm.UserName
            }, vm.Password);

            return(result);
        }
コード例 #5
0
 public async Task <IdentityResult> TryRegisterAsync(AccountRegisterVM viewModel)
 {
     // Try to create a new user
     return(await userManager.CreateAsync(
                new MyIdentityUser { UserName = viewModel.Username,
                                     FirstName = viewModel.FirstName,
                                     Email = viewModel.Username },
                viewModel.Password));
 }
コード例 #6
0
        public async Task <IdentityResult> TryCreateUser(AccountRegisterVM vm)
        {
            var result = await userManager.CreateAsync(new MyIdentityUser
            {
                UserName = vm.UserName,
                Email    = vm.Email,
            }, vm.Password);

            return(result);
        }
コード例 #7
0
        public bool IsUserExsits(AccountRegisterVM model)
        {
            User verifyUser = new UsersRepository().GetAll().FirstOrDefault((u => u.Username.ToLower() == model.Username.ToLower() || u.Email == model.Email));

            if (verifyUser == null)
            {
                return(false);
            }
            return(true);
        }
コード例 #8
0
        public async Task <bool> TryRegisterAsync(AccountRegisterVM viewModel)
        {
            // Todo: Try to create a new user
            //Finns UserManager, RoleManager, SignInManager
            //Identity vill att vi anv deras klasser (ovan) som i sin tur jobbar mot context

            var result = await userManager.CreateAsync(
                new MyIdentityUser { UserName = viewModel.Username }, viewModel.Password);

            return(result.Succeeded);
        }
コード例 #9
0
        public ActionResult Register(AccountRegisterVM model)
        {
            User user = new User();

            if (ModelState.IsValid)
            {
                // Mapping ViewModel => entity
                user.UserName      = model.UserName;
                user.UserPassword  = model.UserPassword;
                user.UserName      = model.UserName;
                user.UserEmail     = model.UserEmail;
                user.Birthday      = model.Birthday;
                user.UserLastName  = model.UserLastName;
                user.UserFirstName = model.UserFirstName;
                user.UserAddress   = model.UserAddress;
                user.UserPost      = model.UserPost;
                user.UserGemeente  = model.UserGemeente;
                user.UserPhone     = model.UserPhone;
                // Aanmaak Hash-paswoord en Role als klant:
                user.PasswordHash = FormsAuthentication.HashPasswordForStoringInConfigFile(user.UserPassword, "md5");
                Role userRole = db.Roles.FirstOrDefault(r => r.RoleName == "Klant");
                user.Roles.Add(userRole);
                db.Users.Add(user);
                db.SaveChanges();

                // Aanmaak van de email
                string body    = "<p>Beste {0},</br></p><p>Bedankt voor uw registratieaanvraag! U kan meteen aan de slag.</p><p><u>Gegevens:</u></br></p><p>Naam: {0} {1}.</p><p>TEL / GSM: {2} </p><p>Email: {3}.</p><p>Adres: {4}</p><p></br>Met vriendelijke groeten,</br></p><p>Uw webmaster</p>";
                var    message = new MailMessage();
                message.To.Add(new MailAddress("*****@*****.**"));
                message.To.Add(new MailAddress("*****@*****.**"));
                message.To.Add(new MailAddress("*****@*****.**"));
                message.Subject    = string.Format("Nieuwe registratie-aanvraag van website Ivo Bytes");
                message.Body       = string.Format(body, user.UserFirstName, user.UserLastName, user.UserPhone, user.UserEmail, user.UserAddress);
                message.IsBodyHtml = true;

                // Versturen van de mail via smtpClient => configuratie in web.config
                SmtpClient smtp = new SmtpClient();
                smtp.Send(message);

                // Gebruik van Tempdata om Indexpagina te voorzien met een melding wanneer mail gestuurd werd.
                TempData["Success"] = "Bedankt voor uw registratie! We nemen snel contact met u op.";

                return(RedirectToAction("Index", "Home"));
            }
            // Modelstate not valid? See errors:
            var errors = ModelState.Values.SelectMany(v => v.Errors);

            return(View());
        }
コード例 #10
0
        public async Task <IActionResult> Register(AccountRegisterVM model)
        {
            if (ModelState.IsValid)
            {
                string fileName = null;

                if (_userManager.FindByEmailAsync(model.Email) != null)
                {
                    ModelState.AddModelError("Email", "There is already an account with this email address.");
                }

                if (model.ProfileImage != null)
                {
                    var uploadFolder = Path.Combine(_hostingEnvironment.WebRootPath, "img");
                    fileName = $"{Guid.NewGuid()}_{model.ProfileImage.FileName}";
                    var filePath = Path.Combine(uploadFolder, fileName);
                    await model.ProfileImage.CopyToAsync(new FileStream(filePath, FileMode.Create));
                }

                var account = new ApplicationUser {
                    FirstName = model.FirstName, LastName = model.LastName, UserName = model.Email, Email = model.Email, ProfilePicturePath = fileName
                };
                var result = await _userManager.CreateAsync(account, model.Password);

                if (result.Succeeded)
                {
                    var user = await _userManager.FindByEmailAsync(account.Email);

                    await _userManager.AddToRoleAsync(user, "User");

                    await _signInManager.SignInAsync(account, isPersistent : false);

                    TempData["UserRegistered"] = $"You are now registered. Welcome {model.FirstName}!";

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

                foreach (var error in result.Errors)
                {
                    ModelState.AddModelError("", error.Description);
                }
            }

            return(View(model));
        }
コード例 #11
0
        public ActionResult Register(AccountRegisterVM model)
        {
            if (ModelState.IsValid)
            {
                UserRepository userRepo = new UserRepository();

                User user = new User()
                {
                    FirstName = model.FirstName,
                    LastName  = model.LastName,
                    Password  = model.Password
                };

                bool userDoesntExist = true;

                User userUsername = userRepo.GetAll(us => us.Username == model.Username).FirstOrDefault();

                if (userUsername != null)
                {
                    ModelState.AddModelError("Username", "Username already exists");
                    userDoesntExist = false;
                }

                user.Username = model.Username;

                User userEmail = userRepo.GetAll(us => us.Email == model.Email).FirstOrDefault();

                if (userEmail != null)
                {
                    ModelState.AddModelError("Email", "Email already exists");
                    userDoesntExist = false;
                }

                user.Email = model.Email;

                if (userDoesntExist)
                {
                    userRepo.Save(user);

                    return(RedirectToAction("Login"));
                }
            }

            return(View(model));
        }
コード例 #12
0
        public async Task <IActionResult> Register(AccountRegisterVM vm)
        {
            if (!ModelState.IsValid)
            {
                return(View(vm));
            }


            var result = await service.TryCreateUser(vm);

            if (!result.Succeeded)
            {
                ModelState.AddModelError(string.Empty, result.Errors.First().Description);
                return(View(vm));
            }

            return(RedirectToAction(nameof(Login)));
        }
コード例 #13
0
        public async Task <IActionResult> Register([FromForm] AccountRegisterVM formdata)
        {
            // Hold Error List
            List <string> errorList = new List <string>();

            // Create User Object
            var user = new User
            {
                Email         = formdata.EmailAddress,
                UserName      = formdata.Username,
                DateCreated   = DateTimeOffset.UtcNow,
                LastOnline    = DateTimeOffset.UtcNow,
                SecurityStamp = Guid.NewGuid().ToString()
            };

            // Add User To Database
            var result = await _userManager.CreateAsync(user, formdata.Password);

            // If Successfully Created
            if (result.Succeeded)
            {
                // Add Role To User
                await _userManager.AddToRoleAsync(user, "Customer");

                // Return Ok Request
                return(Ok(new
                {
                    result = user,
                    message = "Registration Successful"
                }));
            }
            else
            {
                // Add Error To ErrorList
                foreach (var error in result.Errors)
                {
                    ModelState.AddModelError("", error.Description);
                    errorList.Add(error.Description);
                }
            }

            // Return Bad Request Status With ErrorList
            return(BadRequest(new { message = errorList }));
        }
コード例 #14
0
        public async Task <IActionResult> Register([FromBody] AccountRegisterVM viewModel)
        {
            if (!ModelState.IsValid)
            {
                return(Json(new { ModelState = false }));
            }

            // Try to register user
            var result = await service.TryRegisterAsync(viewModel);

            if (!result.Succeeded)
            {
                var x = result.Errors.First().Description;
                // Show error
                ModelState.AddModelError(string.Empty, result.Errors.First().Description);
                return(Json(new { success = false, responseText = "Det gick inte att skapa användaren.", test = x } /*, JsonRequestBehavior.AllowGet*/));
            }
            return(Json(new { success = true, responseText = "Användaren tillagd i databasen" } /*, JsonRequestBehavior.AllowGet*/));
        }
コード例 #15
0
        public async Task <IActionResult> RegisterAsync(AccountRegisterVM viewModel)
        {
            if (!ModelState.IsValid)
            {
                return(View(viewModel));
            }

            // Try to register user
            var success = await accountService.TryRegisterAsync(viewModel);

            if (!success)
            {
                // Show error
                ModelState.AddModelError(string.Empty, "Failed to create user");
                return(View(viewModel));
            }

            // Redirect user
            return(RedirectToAction(nameof(Login)));
        }
コード例 #16
0
        public async Task <IActionResult> Register(AccountRegisterVM viewModel)
        {
            if (!ModelState.IsValid)
            {
                return(View(viewModel));
            }

            // Try to register user
            var result = await accountService.TryRegisterAsync(viewModel);

            if (!result.Succeeded)
            {
                // Show error
                ModelState.AddModelError(string.Empty, result.Errors.First().Description);
                return(View(viewModel));
            }

            // Redirect user
            return(RedirectToAction(nameof(Login)));
        }
コード例 #17
0
        public IActionResult Register([FromForm] AccountRegisterVM userVM)
        {
            //мапим вьюмодель в сущность. далее подключу автомаппер
            User user = new User()
            {
                FirstName = userVM.FirstName,
                LastName  = userVM.LastName,
                Username  = userVM.Username,
            };

            // создаём юзера
            try
            {
                return(Ok(accountModel.AccountCreate(user, userVM.Password)));
            }
            catch (AppException ex)
            {
                //кидаем исключения из модельки
                return(BadRequest(ex.Message));
            }
        }
コード例 #18
0
        public async Task <IActionResult> Register(AccountRegisterVM model)
        {
            if (ModelState.IsValid)
            {
                var result = await userManager.CreateAsync(new IdentityUser(model.UserName), (model.PassWord));

                if (!result.Succeeded)
                {
                    ModelState.AddModelError("UserName", result.Errors.First().Description);
                }
                else
                {
                    var res2 = await signInManager.PasswordSignInAsync(model.UserName, model.PassWord, false, false);

                    TempData["User"] = JsonConvert.SerializeObject(model);
                    return(RedirectToAction(nameof(AddUser)));
                }
            }

            return(View(model));
        }
コード例 #19
0
        public ActionResult Register()
        {
            UsersService      usersService = new UsersService();
            AccountRegisterVM model        = new AccountRegisterVM();

            TryUpdateModel(model);

            if (usersService.IsUserExsits(model))
            {
                ModelState.AddModelError(String.Empty, "Username or Email is already taken.");
            }

            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            User user;

            if (model.ID == 0)
            {
                user = new User();
            }
            else
            {
                return(this.RedirectToAction(c => c.Login()));
            }

            Mapper.Map(model, user);
            user.Password = Guid.NewGuid().ToString();

            usersService.Save(user);
            Task.Run(() => EmailService.SendEmail(user, ControllerContext));

            return(View("WaitForConfirmation"));
        }
コード例 #20
0
        public ActionResult Register(string redirectUrl)
        {
            AccountRegisterVM model = new AccountRegisterVM();

            return(View(model));
        }
コード例 #21
0
 public async Task <IdentityResult> TryRegisterAsync(AccountRegisterVM viewModel)
 {
     return(await userManager.CreateAsync(
                new MyIdentityUser { UserName = viewModel.Username },
                viewModel.Password));
 }
コード例 #22
0
        public async Task <bool> TryRegisterAsync(AccountRegisterVM viewModel)
        {
            var result = await userManager.CreateAsync(new MyIdentityUser { UserName = viewModel.Username }, viewModel.Password);

            return(result.Succeeded);
        }
コード例 #23
0
        public async Task <IActionResult> Register(AccountRegisterVM viewModel)
        {
            if (!ModelState.IsValid)
            {
                string user = repository.GetUsername(HttpContext.User);
                string id   = repository.GetUserId(HttpContext.User);

                var model = new HomeIndexVM
                {
                    LoggedIn    = User.Identity.IsAuthenticated,
                    DigiStudent = new HomeIndexFindClassroomVM {
                        Classrooms = await repository.GetAllClassrooms()
                    },                                                                                               //classrooms = repository.FindAllClassrooms();
                    CreateClassroom = new HomeIndexCreateClassroomVM(),
                    DigiMaster      = new HomeIndexLoginVM {
                        Username = user
                    },
                    Register = new AccountRegisterVM {
                        OldClassroomName = repository.GetClassroomNameByAspNetId(id), OldClassroomId = repository.GetClassroomId(id)
                    }
                };
                TempData["username"]      = viewModel.RegUsername;
                TempData["password"]      = viewModel.RegPassword;
                TempData["classroomname"] = viewModel.ClassroomName;
                TempData["message"]       = "Fyll i alla fält.";
                return(RedirectToAction(nameof(Index), model));
            }

            if (!await repository.IsClassroomNameAvailable(viewModel.ClassroomName))
            {
                string user = repository.GetUsername(HttpContext.User);
                string id   = repository.GetUserId(HttpContext.User);

                var model = new HomeIndexVM
                {
                    LoggedIn    = User.Identity.IsAuthenticated,
                    DigiStudent = new HomeIndexFindClassroomVM {
                        Classrooms = await repository.GetAllClassrooms()
                    },                                                                                               //classrooms = repository.FindAllClassrooms();
                    CreateClassroom = new HomeIndexCreateClassroomVM(),
                    DigiMaster      = new HomeIndexLoginVM {
                        Username = user
                    },
                    Register = new AccountRegisterVM {
                        OldClassroomName = repository.GetClassroomNameByAspNetId(id), OldClassroomId = repository.GetClassroomId(id)
                    }
                };
                TempData["username"]      = viewModel.RegUsername;
                TempData["password"]      = viewModel.RegPassword;
                TempData["classroomname"] = viewModel.ClassroomName;
                TempData["message"]       = "Klassrumsnamn är upptaget.";
                return(RedirectToAction(nameof(Index), model));
            }

            var result = await repository.CreateUser(viewModel.RegUsername, viewModel.RegPassword);

            if (!result.Succeeded)
            {
                foreach (var error in result.Errors)
                {
                    if (error.Code.Contains("User"))
                    {
                        ModelState.AddModelError(nameof(AccountRegisterVM.RegUsername), error.Description);
                    }
                    else
                    {
                        ModelState.AddModelError(nameof(AccountRegisterVM.RegPassword), error.Description);
                    }
                }
                string user = repository.GetUsername(HttpContext.User);
                string id   = repository.GetUserId(HttpContext.User);

                var model = new HomeIndexVM
                {
                    LoggedIn    = User.Identity.IsAuthenticated,
                    DigiStudent = new HomeIndexFindClassroomVM {
                        Classrooms = await repository.GetAllClassrooms()
                    },                                                                                               //classrooms = repository.FindAllClassrooms();
                    CreateClassroom = new HomeIndexCreateClassroomVM(),
                    DigiMaster      = new HomeIndexLoginVM {
                        Username = user
                    },
                    Register = new AccountRegisterVM {
                        OldClassroomName = repository.GetClassroomNameByAspNetId(id), OldClassroomId = repository.GetClassroomId(id)
                    }
                };
                TempData["username"]      = viewModel.RegUsername;
                TempData["password"]      = viewModel.RegPassword;
                TempData["classroomname"] = viewModel.ClassroomName;
                TempData["message"]       = "Användarnamn eller lösenord är inte tillgänglig.";
                return(RedirectToAction(nameof(Index), model));
            }

            ClassroomDigiMasterVM modell = await repository.CreateClassroom(UtilClass.ParseHtml(viewModel.ClassroomName), await repository.GetUserAsync(viewModel.RegUsername));

            return(RedirectToAction("DigiMaster", "Classroom", new { id = await repository.GetClassroomIdByName(viewModel.OldClassroomName) }));
        }