コード例 #1
0
        /// <summary>
        /// Used to create new user
        /// It will throw an exception if it coudn't be added
        /// Or set into the model correct id if everything was fine
        /// </summary>
        /// <param name="user"></param>
        public void CreateNewUser(DetailedUserData user, string password)
        {
            var          dbUser = config.CreateMapper().Map <User>(user);
            PasswordHash hash   = new PasswordHash(password);

            dbUser.Password = Convert.ToBase64String(hash.ToArray());
            try
            {
                var id = repository.Add(dbUser);
                unitOfWork.Commit();
                user.ID = id;
            }
            catch (Exception ex)
            {
                // please add logger functionality here
                throw ex;
            }
        }
コード例 #2
0
        public ActionResult Register(RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                DetailedUserData user = null;
                if (!authService.UserNameExist(model.Username) && !authService.EmailExist(model.Email))
                {
                    try
                    {
                        user = new DetailedUserData()
                        {
                            UserName = model.Username,
                            Email    = model.Email,
                            Roles    = new[] { "user" }, //make it better if you will have enough time
                        };
                        authService.CreateNewUser(user, model.Password);
                        Modules.Authentication.AuthenticationHelper.AuthUser(Response, user.UserName, user.ID, user.Roles.ToArray(), false);


                        if (Request.IsAjaxRequest())
                        {
                            // ajax request :)
                        }

                        return(RedirectToAction("Chat", "Home"));
                    }
                    catch
                    {
                        ModelState.AddModelError("", "Ошибка при регистрации");
                    }
                }
            }
            ModelState.AddModelError("", "Ошибка при регистрации");
            if (Request.IsAjaxRequest())
            {
                // ajax request :)
                //Response.Write(Url.Action("Register"));
                //return new HttpStatusCodeResult(400);
            }
            return(View(model));
        }