public ActionResult Authentication(LoginViewModel account, string returnUrl)
        {
            string messageReturn = "";
            if (ModelState.IsValid)
            {
                var gcmpMembership = new GCMPMembershipProvider();

                if (gcmpMembership.ValidateUser(account.UserName, account.Password))
                {

                    FormsAuthentication.SetAuthCookie(account.UserName, account.RememberMe);
                    var aa = User.Identity.Name;
                    return RedirectToAction("Index", "Home");
                }
            }
            else if (!account.UserName.IsNullOrWhiteSpace() && !account.Password.IsNullOrWhiteSpace())
            {
                AccountRegisterViewModel regmodel = new AccountRegisterViewModel
                {
                    Username = account.UserName,
                    Password = account.Password
                };

                var rs = _model.RegisterAccount(regmodel);
                if (rs)
                {

                    return RedirectToAction("RegisterSuccess", "Account", new { returnUrl = returnUrl, username = account.UserName, password = account.Password, remember = account.RememberMe });
                }
                else
                {
                    messageReturn = "Có lỗi trong quá trình đăng ký, xin vui lòng thử lại!";
                    return RedirectToAction("Authenfailed", "Account", new { returnUrl = returnUrl, message = messageReturn });
                }
            }
            // * in case of, email and password aren't correct!!
            messageReturn = "Sai email đăng nhập hoặc mật khẩu! Xin vui lòng thử lại!";

            return RedirectToAction("Authenfailed", "Account", new { returnUrl = returnUrl, message = messageReturn});
        }
 public ActionResult Register(AccountRegisterViewModel regModel)
 {
     if (ModelState.IsValid)
     {
         _model.RegisterAccount(regModel);
     }
     return PartialView(regModel);
 }
Example #3
0
        public Boolean RegisterAccount(AccountRegisterViewModel regModel)
        {
            Random rand = new Random((int)DateTime.Now.Ticks);
            int sizesalt = rand.Next(1, 100);

            String salt = AccountHelper.CreateSalt(sizesalt);
            String passAndSalt = regModel.Password + salt;
            String hassedPass = AccountHelper.HashPassword(passAndSalt);

            var singleOrDefault = _db.Roles.SingleOrDefault(r => r.RoleName == Helper.Const.User);
            if (singleOrDefault != null)
            {
                var user = new User
                {
                    UserName = regModel.Username,
                    Password = hassedPass,
                    KeyValue = salt,
                    IsActive = false,
                    RoleId = singleOrDefault.Id,
                    Status = Const.UActive,
                    Description = ""
                };

                try
                {
                    _db.Users.Add(user);
                    _db.SaveChanges();
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                }

                var userinfo = new UserInfo
                {
                    IdCard = regModel.IdNumber,
                    Address = regModel.Address,
                    Phone = regModel.Phonenumber,
                    Gender = regModel.Male,
                    DayOfBirth = regModel.DateOfBirth,
                    LastLogin = DateTime.Now,
                    Description = "",
                    User = _db.Users.Find(user.Id)
                };

                var userconfig = new UserConfig
                {
                    DisplayNickname = false,
                    AllowToSellCard = false,
                    User = _db.Users.Find(user.Id)
                };

                try
                {
                    _db.UserInfoes.Add(userinfo);
                    _db.SaveChanges();
                    _db.UserConfigs.Add(userconfig);
                    _db.SaveChanges();
                    return true;
                }
                catch (DbEntityValidationException dbEx)
                {
                    foreach (var validationErrors in dbEx.EntityValidationErrors)
                    {
                        foreach (var validationError in validationErrors.ValidationErrors)
                        {
                            Trace.TraceInformation("Property: {0} Error: {1}", validationError.PropertyName, validationError.ErrorMessage);
                        }
                    }
                    return false;
                }
            }
            return false;
        }