public IActionResult Register(UserRegisteringBindingModel model)
        {
            if (this.User.IsAuthenticated)
            {
                return(this.RedirectToHome());
            }

            if (!this.IsValidModel(model))
            {
                return(this.BuildErrorView());
            }

            string passwordHash = PasswordUtilities.GetPasswordHash(model.Password);

            var user = new User()
            {
                Username     = model.Username,
                Email        = model.Email,
                PasswordHash = passwordHash
            };

            using (this.Context)
            {
                this.Context.Users.Add(user);
                this.Context.SaveChanges();
            }

            this.SignIn(user.Username, user.Id);
            return(this.RedirectToHome());
        }
        public IActionResult Register(UserRegisteringBindingModel model)
        {
            if (!this.IsValidModel(model))
            {
                return(this.View());
            }

            var sha256 = SHA256Managed.Create();
            var user   = new User()
            {
                Username     = model.Username,
                PasswordHash = string.Join(
                    "",
                    sha256
                    .ComputeHash(System.Text.Encoding.UTF8.GetBytes(model.Password))
                    .Select(b => b.ToString("x2")))
            };

            using (this.Context)
            {
                this.Context.Users.Add(user);
                this.Context.SaveChanges();
            }

            this.SignIn(user.Username);
            return(this.RedirectToAction("/home/index"));
        }
        public IActionResult Register(UserRegisteringBindingModel model)
        {
            if (this.User.IsAuthenticated)
            {
                this.RedirectToHome();
            }
            if (!this.IsValidModel(model))
            {
                this.BuildErrorView();
                return(this.View());
            }

            string passwordHash = PasswordUtilities.GetPasswordHash(model.Password);

            var user = new User()
            {
                Username     = model.Username,
                Email        = model.Email,
                FullName     = model.FullName,
                PasswordHash = passwordHash
            };

            if (!this.Context.Users.Any())
            {
                user.RoleId = AdminId;
            }
            else
            {
                user.RoleId = UserId;
            }

            string userRole = string.Empty;

            using (this.Context)
            {
                if (this.Context.Users.Any(u => u.Username == user.Username))
                {
                    this.ViewData["error"] = string.Format("Username already taken");
                    return(this.View());
                }
                if (this.Context.Users.Any(u => u.Email == user.Email))
                {
                    this.ViewData["error"] = string.Format("Email already taken");
                    return(this.View());
                }
                this.Context.Users.Add(user);
                this.Context.SaveChanges();

                userRole = this.Context.Roles.FirstOrDefault(r => r.Id == user.RoleId).ToString();
            }

            this.SignIn(user.Username, user.Id, new[] { userRole });

            return(this.RedirectToHome());
        }
Example #4
0
        public IActionResult Register(UserRegisteringBindingModel model)
        {
            if (this.User.IsAuthenticated)
            {
                this.RedirectToHome();
            }
            if (!this.IsValidModel(model))
            {
                this.BuildErrorView();
                return(this.View());
            }

            string passwordHash = PasswordUtilities.GetPasswordHash(model.Password);

            var user = new User()
            {
                Username     = model.Username,
                Email        = model.Email,
                PasswordHash = passwordHash
            };

            using (this.Context)
            {
                if (this.Context.Users.Any(u => u.Username == user.Username))
                {
                    this.Model.Data["error"] = string.Format(ErrorBox, "Username already taken");
                    return(this.View());
                }
                if (this.Context.Users.Any(u => u.Email == user.Email))
                {
                    this.Model.Data["error"] = string.Format(ErrorBox, "Email already taken");
                    return(this.View());
                }
                this.Context.Users.Add(user);
                this.Context.SaveChanges();
            }

            this.SignIn(user.Username, user.Id);

            return(this.RedirectToHome());
        }
        public IActionResult Register(UserRegisteringBindingModel model)
        {
            if (this.User.IsAuthenticated)
            {
                return(this.RedirectToHome());
            }

            if (!this.IsValidModel(model))
            {
                this.ViewData.Data["error"] = "You have errors in your form.";
                return(this.View());
            }

            string passwordHash = PasswordUtilities.GetPasswordHash(model.Password);

            var user = new User()
            {
                Username     = model.Username,
                PasswordHash = passwordHash,
                FullName     = model.FullName,
                Email        = model.Email,
                RoleId       = 1
            };

            using (this.Context)
            {
                this.Context.Users.Add(user);
                this.Context.SaveChanges();
            }

            this.SignIn(user.Username, user.Id, new List <string>()
            {
                "Admin"
            });
            return(this.RedirectToHome());
        }