Exemple #1
0
        public async Task <ActionResult> Login(LoginRegisterModel model, string returnUrl)
        {
            if (ModelState.IsValid)
            {
                var user = await UserManager.FindAsync(model.Login.UserName, model.Login.Password);

                if (user != null)
                {
                    await SignInAsync(user, model.Login.RememberMe);

                    if (UserManager.GetRoles(user.Id).Contains("Teacher"))
                    {
                        return(RedirectToAction("Index", "Teacher"));
                    }
                    if (UserManager.GetRoles(user.Id).Contains("Student"))
                    {
                        return(RedirectToAction("Index", "Student"));
                    }
                    if (UserManager.GetRoles(user.Id).Contains("Parent"))
                    {
                        return(RedirectToAction("Index", "Parent"));
                    }
                    return(RedirectToLocal(returnUrl));
                }
                else
                {
                    ModelState.AddModelError("", "Invalid username or password.");
                }
            }

            // If we got this far, something failed, redisplay form
            return(RedirectToAction("Index", "Home"));
        }
Exemple #2
0
        public OperationResult CreateUser(LoginRegisterModel user, string role)
        {
            AppUser appuser = new AppUser()
            {
                UserName = user.UserName, Email = user.Email
            };

            if (_unitOfWork.UserManager.Users.SingleOrDefault(u => u.UserName == user.UserName) != null)
            {
                return(new OperationResult {
                    Message = "Пользователь с таким логином уже существует"
                });
            }
            else
            {
                IdentityResult userCreation = _unitOfWork.UserManager.CreateAsync(appuser, user.Password).Result;
                if (userCreation.Succeeded)
                {
                    IdentityResult inRoleAdding = _unitOfWork.UserManager.AddToRoleAsync(appuser, role).Result;
                    if (inRoleAdding.Succeeded)
                    {
                        return(new OperationResult {
                            Message = "Пользователь успешно создан", Data = appuser.Id, Succeeded = true
                        });
                    }
                    ;
                }

                _unitOfWork.UserManager.DeleteAsync(appuser);
                return(new OperationResult {
                    Message = "Не удалось создать пользователя"
                });
            }
        }
Exemple #3
0
        public async Task <ActionResult> Register(LoginRegisterModel model)
        {
            if (ModelState.IsValid)
            {
                var user = new ApplicationUser()
                {
                    UserName = model.Register.UserName, FirstName = model.Register.FirstName, LastName = model.Register.LastName, IsApproved = false, SuggestedAccountRole = model.Register.SuggestedAccountRole, GradeLevel = model.Register.GradeLevel
                };
                var result = await UserManager.CreateAsync(user, model.Register.Password);

                if (result.Succeeded)
                {
                    await SignInAsync(user, isPersistent : false);

                    return(RedirectToAction("Index", "Home"));
                }
                else
                {
                    AddErrors(result);
                }
            }

            // If we got this far, something failed, redisplay form
            return(View(model));
        }
Exemple #4
0
        public async Task <GetJwtResult> GetJwtToken(LoginRegisterModel loginModel)
        {
            GetJwtResult resutl = new GetJwtResult();
            var          user   = await _userManager.FindByNameAsync(loginModel.UserName);

            IdentityOptions _options = new IdentityOptions();

            if (user != null && await _userManager.CheckPasswordAsync(user, loginModel.Password))
            {
                var role = _userManager.GetRolesAsync(user).Result.FirstOrDefault();

                var tokenDescriptor = new SecurityTokenDescriptor
                {
                    Subject = new ClaimsIdentity(new Claim[] {
                        new Claim("UserID", user.Id.ToString()),
                        new Claim(_options.ClaimsIdentity.RoleClaimType, role)
                    }),
                    Expires            = DateTime.UtcNow.AddDays(1),
                    SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_appSettings.JWTSecret)),
                                                                SecurityAlgorithms.HmacSha256)
                };

                var tokenHandler  = new JwtSecurityTokenHandler();
                var securityToken = tokenHandler.CreateToken(tokenDescriptor);
                var token         = tokenHandler.WriteToken(securityToken);
                resutl.Token   = token;
                resutl.Success = true;
                return(resutl);
            }
            else
            {
                resutl.Success = false;
                return(resutl);
            }
        }
Exemple #5
0
 private bool checkUserinfosignup(LoginRegisterModel model)
 {
     if (_context.Khachhang.FirstOrDefault(n => n.Email.Equals(model.userName)) != null || _context.Khachhang.FirstOrDefault(n => n.SoDiethoai.Equals(model.userName)) != null)
     {
         return(false);
     }
     return(true);
 }
Exemple #6
0
        public static LoginRegisterModel infoMessageModel(string zpravaProUzivatele)
        {
            var modelError = new LoginRegisterModel {
                errorMessage = zpravaProUzivatele
            };

            return(modelError);
        }
        public IActionResult CreateUser(FrontUser frontUser)
        {
            LoginRegisterModel loginRegisterModel = new LoginRegisterModel()
            {
                UserName = frontUser.UserName, Password = frontUser.Password
            };
            FrontCustomer frontCustomer = new FrontCustomer()
            {
                Address = frontUser.Address, Name = frontUser.Name
            };

            string userId = Convert.ToString(_userService.CreateUser(loginRegisterModel, "User").Data);

            return(Ok(_customerService.CreateCustomer(frontCustomer, userId)));
        }
Exemple #8
0
        public CreateUserResult CreateUser(LoginRegisterModel user, string role)
        {
            CreateUserResult result  = new CreateUserResult();
            AppUser          appuser = new AppUser()
            {
                UserName = user.UserName, Email = user.Email
            };

            try
            {
                if (_userManager.Users.SingleOrDefault(u => u.UserName == user.UserName) != null)
                {
                    result.Message        = "Пользователь с таким логином уже существует";
                    result.Success        = false;
                    result.IsAlreadyExist = true;
                }
                else
                {
                    IdentityResult userCreation = _userManager.CreateAsync(appuser, user.Password).Result;
                    IdentityResult inRoleAdding = _userManager.AddToRoleAsync(appuser, role).Result;
                    if (userCreation.Succeeded)
                    {
                        if (inRoleAdding.Succeeded)
                        {
                            result.IsAlreadyExist = false;
                            result.Success        = true;
                            result.Message        = "Пользователь успешно создан";
                            result.UserId         = appuser.Id;
                        }
                        else
                        {
                            AppUser appUser = _userManager.Users.SingleOrDefault(u => u.UserName == user.UserName);
                            _userManager.DeleteAsync(appUser);
                            result.IsAlreadyExist = false;
                            result.Other          = true;
                            result.Message        = "Не удалось создать пользователя";
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                result.Message = "Не удалось создать пользователя " + ex;
            }
            return(result);
        }
Exemple #9
0
        private Khachhang checkUserinfo(LoginRegisterModel model)
        {
            var kh = _context.Khachhang.FirstOrDefault(n => n.Email.Equals(model.userName) || n.NameKh.Equals(model.userName));

            if (kh != null)
            {
                var pass = PasswordCrypt.CreateMD5(model.passWord);
                if (kh.Password.Equals(pass))
                {
                    return(kh);
                }
                else
                {
                    return(null);
                }
            }
            return(null);
        }
Exemple #10
0
        public OperationResult GetJwtToken(LoginRegisterModel loginModel)
        {
            var user = _unitOfWork.UserRepository
                       .All()
                       .Where(x => x.UserName == loginModel.UserName)
                       .Single();

            var isPasswordValid = _unitOfWork.UserManager.CheckPasswordAsync(user, loginModel.Password).Result;

            if (!isPasswordValid)
            {
                return new OperationResult {
                           Succeeded = false
                }
            }
            ;

            var role = _unitOfWork.UserManager.GetRolesAsync(user).Result.FirstOrDefault();

            IdentityOptions _options        = new IdentityOptions();
            var             tokenDescriptor = new SecurityTokenDescriptor
            {
                Subject = new ClaimsIdentity(new Claim[] {
                    new Claim("UserID", user.Id.ToString()),
                    new Claim(_options.ClaimsIdentity.RoleClaimType, role)
                }),
                Expires            = DateTime.UtcNow.AddDays(1),
                SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_appSettings.JWTSecret)),
                                                            SecurityAlgorithms.HmacSha256)
            };

            var tokenHandler  = new JwtSecurityTokenHandler();
            var securityToken = tokenHandler.CreateToken(tokenDescriptor);
            var token         = tokenHandler.WriteToken(securityToken);

            return(new OperationResult {
                Data = token, Succeeded = true
            });
        }
Exemple #11
0
        public IActionResult login(string name, string password)
        {
            var pripojeni = ConnectToDatabase.Connector();

            string hesloDatabaze = String.Empty;
            string scoreDatabaze = String.Empty;
            bool   verified      = false;

            var data = ConnectToDatabase.LoginRegisterNameCheck(name, pripojeni);

            if (data.Read())
            {
                hesloDatabaze = data["heslo"].ToString();
                verified      = BCrypt.Net.BCrypt.Verify(password, hesloDatabaze);
                Console.WriteLine(verified);
            }
            if (verified)
            {
                HttpContext.Session.SetString("username", name);

                var model = modelCreate.infoMessageModel(name);

                //Response.Cookies.Append("jmeno", name);
                //string cookie = Request.Cookies["jmeno"];
                //Console.WriteLine(cookie);

                return(View("login", model));
            }

            else
            {
                var modelError = new LoginRegisterModel {
                    errorMessage = "Spatne jmeno nebo heslo"
                };

                return(View("login", modelError));
            }
        }
Exemple #12
0
 public IActionResult Register(LoginRegisterModel registerModel)
 {
     if (ModelState.IsValid)
     {
         string password2 = PasswordCrypt.CreateMD5(registerModel.passWord);
         if (checkUserinfosignup(registerModel))
         {
             Khachhang obj = new Khachhang();
             obj.Email  = registerModel.userName;
             obj.NameKh = registerModel.NameKh;
             //obj.SoDiethoai = registerModel.userName;
             obj.Password = password2;
             _context.Khachhang.Add(obj);
             _context.SaveChanges();
             return(Redirect("/login"));
         }
         else
         {
             ViewData["UserLoginFailed"] = "Trùng tên đăng nhập rồi nha khứa ";
         }
     }
     return(View());
 }
Exemple #13
0
        public IActionResult CreateUser(FrontUser frontUser)
        {
            CreateUserResult   result             = new CreateUserResult();
            LoginRegisterModel loginRegisterModel = new LoginRegisterModel()
            {
                UserName = frontUser.UserName, Password = frontUser.Password
            };
            FrontCustomer frontCustomer = new FrontCustomer()
            {
                Address = frontUser.Address, Name = frontUser.Name
            };
            var userCreationResult = _marketUoW.UseUserMngmtRepository().CreateUser(loginRegisterModel, "User");

            if (userCreationResult.Success)
            {
                var assignResult = _marketUoW.UseUserMngmtRepository().AssignCustomer(frontCustomer, userCreationResult.UserId).Result;
                if (assignResult.Succeeded)
                {
                    result.Success = true;
                }
                ;
            }
            return(Ok(result));
        }
Exemple #14
0
 public IActionResult RegisterManager(LoginRegisterModel user)
 {
     return(Ok(_userService.CreateUser(user, "Manager")));
 }
Exemple #15
0
 public IActionResult Login(LoginRegisterModel model)
 {
     return(Ok(_authService.GetJwtToken(model)));
 }
Exemple #16
0
        public async Task <IActionResult> Index(LoginRegisterModel model, string returnUrl = null)
        {
            ViewData["ReturnUrl"] = returnUrl;
            LoginViewModel    loginmodel    = model.login;
            RegisterViewModel registermodel = model.register;

            if (ModelState.IsValid)
            {
                // This doesn't count login failures towards account lockout
                // To enable password failures to trigger account lockout, set lockoutOnFailure: true

                if (loginmodel != null && registermodel != null)
                {
                    ModelState.AddModelError(string.Empty, "Both login and signup");
                    return(View(model));
                }
                if (loginmodel == null && registermodel == null)
                {
                    ModelState.AddModelError(string.Empty, "Empty submit");
                    return(View(model));
                }

                if (loginmodel != null)
                {
                    var result =
                        await _signinmanager.PasswordSignInAsync(
                            loginmodel.UserName,
                            loginmodel.Password,
                            loginmodel.RememberMe,
                            lockoutOnFailure : false);

                    if (result.Succeeded)
                    {
                        return(RedirectToLocal(returnUrl));
                    }
                    else
                    {
                        ModelState.AddModelError(string.Empty, "Invalid login attempt.");
                        return(View(model));
                    }
                }
                if (registermodel != null)
                {
                    var user = new User
                    {
                        UserName = registermodel.UserName,
                        Email    = registermodel.Email,
                    };
                    var result = await _usermanager.CreateAsync(user, registermodel.Password);

                    if (!result.Succeeded)
                    {
                        AddErrors(result);
                    }

                    return(View(model));
                }
            }

            // If we got this far, something failed, redisplay form
            return(View(model));
        }
Exemple #17
0
        public IActionResult RegisterManager(LoginRegisterModel user)
        {
            CreateUserResult result = _marketUoW.UseUserMngmtRepository().CreateUser(user, "Manager");

            return(Ok(result));
        }
Exemple #18
0
        public IActionResult Login(LoginRegisterModel model)
        {
            var result = _marketUoW.UseUserMngmtRepository().GetJwtToken(model).Result;

            return(Ok(result));
        }
Exemple #19
0
        public async Task <IActionResult> Login(LoginRegisterModel Lmodel)
        {
            if (ModelState.IsValid)
            {
                var kh = checkUserinfo(Lmodel);
                if (kh != null)
                {
                    var claims = new List <Claim>
                    {
                        new Claim(ClaimTypes.Name, kh.NameKh != null? kh.NameKh : kh.Email),
                        new Claim(ClaimTypes.Role, "Client"),
                        new Claim(ClaimTypes.NameIdentifier, kh.IdKhachHang.ToString())
                    };
                    ClaimsIdentity  userIdentity = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme);
                    ClaimsPrincipal principal    = new ClaimsPrincipal(userIdentity);

                    var oldCartID = HttpContext.Session.GetString(CartSessionKey);
                    var cartList  = oldCartID != null?HttpContext.Session.GetObjectFromJson <List <Carts> >(oldCartID) : new List <Carts>();

                    List <Carts> lstToadd = new List <Carts>();
                    if (cartList != null && cartList.Count() > 0)
                    {
                        foreach (var item in cartList)
                        {
                            var add = true;
                            item.Sp     = null;
                            item.CartId = kh.IdKhachHang.ToString();
                            var spExisted = _context.Carts.FirstOrDefault(sp => sp.SpId == item.SpId && sp.CartId.Equals(item.CartId));
                            // if user carts already exist we just want to update quanity instead adding new
                            // just exclude it out of the things to add
                            if (spExisted != null)
                            {
                                spExisted.Quantity += item.Quantity;
                                _context.Carts.Update(spExisted);
                                add = false;
                            }
                            if (add)
                            {
                                lstToadd.Add(item);
                            }
                        }
                        //make sure shit in session is clean af so we can go on with items from db
                        HttpContext.Session.SetObjectAsJson(oldCartID, "");
                        await _context.Carts.AddRangeAsync(lstToadd);
                    }

                    await _context.SaveChangesAsync();

                    HttpContext.Session.SetString(CartSessionKey, kh.IdKhachHang.ToString());

                    await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, principal);

                    return(Redirect("/"));
                }
                else
                {
                    ViewData["UserLoginFailed"] = "Sai tên đăng nhập hoặc mật khẩu r nha bạn ";
                }
            }
            return(View());
        }
        public ActionResult Register(LoginRegisterModel id)
        {
            //Check if we already have a user registered with the same email address
            if (customerTable.SelectRecord(new SelectCustomerModel()
            {
                Email = id.email
            }).CustomerUUID != null)
            {
                return(Json(new { result = "Fail", reason = "Email address is already registered" }));
            }

            //Generate Password's Salt and Hash
            byte[] salt       = Password.ComputeSaltBytes();
            string hashString = Password.ComputeHash(id.password, salt);
            string saltString = Convert.ToBase64String(salt);

            //Insert into Customer table
            InsertCustomerModel newCustomer = new InsertCustomerModel()
            {
                FirstName = id.firstName,
                LastName  = id.lastName,
                Phone     = id.phone,
                Email     = id.email,
                Hash      = hashString,
                Salt      = saltString
            };
            CustomerResultModel customerResult = customerTable.InsertRecord(newCustomer);

            //If it didn't insert, then we won't get a UUID back
            if (customerResult.CustomerUUID == null)
            {
                return(Json(new { result = "Fail", reason = "Insert into the database was not successful" }));
            }

            //Insert customer's address into the address table
            InsertAddressModel customerAddress = new InsertAddressModel()
            {
                CustomerUUID = customerResult.CustomerUUID,

                BillingAddress  = id.address,
                BillingAddress2 = id.address2,
                BillingCity     = id.city,
                BillingState    = id.state,
                BillingZip      = Int32.Parse(id.postalCode),

                ShippingAddress  = id.address,
                ShippingAddress2 = id.address2,
                ShippingCity     = id.city,
                ShippingState    = id.state,
                ShippingZip      = Int32.Parse(id.postalCode)
            };

            NonQueryResultModel addressResult = addressTable.InsertRecord(customerAddress); //We have the option to 'do something' if the insert fails

            //Insert into Query table
            InsertQueryModel customerQuery = new InsertQueryModel()
            {
                CustomerUUID = customerResult.CustomerUUID,

                Category   = "",
                CategoryID = "",
                Frequency  = "",
                PriceLimit = ""
            };
            NonQueryResultModel queryResult = queryTable.InsertRecord(customerQuery); //If this fails, we have the option of doing something

            //Aaaand we're done.
            return(Json(new { result = "Success" }));
        }