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")); }
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 = "Не удалось создать пользователя" }); } }
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)); }
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); } }
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); }
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))); }
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); }
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); }
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 }); }
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)); } }
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()); }
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)); }
public IActionResult RegisterManager(LoginRegisterModel user) { return(Ok(_userService.CreateUser(user, "Manager"))); }
public IActionResult Login(LoginRegisterModel model) { return(Ok(_authService.GetJwtToken(model))); }
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)); }
public IActionResult RegisterManager(LoginRegisterModel user) { CreateUserResult result = _marketUoW.UseUserMngmtRepository().CreateUser(user, "Manager"); return(Ok(result)); }
public IActionResult Login(LoginRegisterModel model) { var result = _marketUoW.UseUserMngmtRepository().GetJwtToken(model).Result; return(Ok(result)); }
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" })); }