public async Task <IActionResult> Create([Bind("Id,AreaName,AreaCaption,ControllerName,ControllerCaption,ActionName,ActionCaption,ActionType")] Permissions permissions) { if (ModelState.IsValid) { _context.Add(permissions); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View(permissions)); }
public async Task <IActionResult> Create([Bind("Id,UserName,Password,PasswordSalt,IsActive,CreateDate")] Users users) { if (ModelState.IsValid) { users.Id = Guid.NewGuid(); users.CreateDate = DateTime.Now; _context.Add(users); await _context.SaveChangesAsync(); _cache.Remove(_userListCacheKey); return(RedirectToAction(nameof(Index))); } return(View(users)); }
public async Task <T> AddAsync(T entity) { try { await _dbContext.Set <T>().AddAsync(entity); await _dbContext.SaveChangesAsync(); return(entity); } catch (Exception ex) { //LogError(MethodBase.GetCurrentMethod().Name, ex); throw ex; } }
public async Task <IActionResult> Register(RegisterViewModel model) { if (ModelState.IsValid) { //check password with confirmpassword //check user name already!!!!! var saltPassword = Guid.NewGuid().ToString(); var hashPassword = EncyrptionUtility.GenerateHashWithSalt(model.Password, saltPassword); //EncyrptionUtility.HashSHA256($"{saltPassword}{model.Password}"); var user = new Users { CreateDate = DateTime.Now, Id = Guid.NewGuid(), IsActive = true, UserName = model.UserName, PasswordSalt = saltPassword, Password = hashPassword }; await _context.AddAsync(user); await _context.SaveChangesAsync(); return(RedirectToAction("Login")); } return(View(model)); }
public async Task <IActionResult> Login(string userName, string password) { var user = _context.Users.SingleOrDefault(q => q.UserName == userName); if (user == null) { return(BadRequest("invalid username & password")); } var hashPassword = EncyrptionUtility.GenerateHashWithSalt(password, user.PasswordSalt); if (user.Password != hashPassword) { return(BadRequest("invalid username & password")); } var refreshToken = GenerateNewRefreshToken(); //step 1 : invalid user refresh token //step 2 : insert new refreshtoken in db var userToken = new UserTokens { CreateDate = DateTime.Now, ExpireDate = DateTime.Now.AddMinutes(_tokenTimeOut), IsValid = true, RefreshToken = refreshToken, UserId = user.Id }; await _context.AddAsync(userToken); await _context.SaveChangesAsync(); var model = new LoginViewModel { FirstName = user.UserName, LastName = "Rezaei", Token = GenerateNewToken(user.Id.ToString()), RefreshToken = refreshToken }; return(Ok(model)); }
/// <summary> /// </summary> /// <returns></returns> public async Task <ActionResult> GeneratePermissions() { var permissionList = new List <Permissions>(); //لیست دسترسی های موجود در دیتابیس var oldPremissionList = await _context.Permissions.ToListAsync(); //لیست کنترلرها var controllers = Assembly.GetExecutingAssembly().GetTypes().Where(q => q.BaseType == typeof(Areas.Admin.Controllers.BaseController)); foreach (var controller in controllers) { //لیست اکشن های یک کنترلر var actions = controller.GetMethods().Where(q => q.IsPublic && q.DeclaringType.FullName == controller.FullName); foreach (var action in actions) { //چک کردن اینکه از قبل در دیتابیس وجود نداشته باشد if (!oldPremissionList.Any(q => q.AreaName == controller.FullName && q.ActionName == action.Name && q.ActionType == GetActionType(action))) { var permission = new Permissions { ActionName = action.Name, ControllerName = controller.Name, ControllerCaption = controller.Name, ActionCaption = $"{controller.Name}-{action.Name}", ActionType = GetActionType(action), AreaName = controller.FullName, }; permissionList.Add(permission); } } } await _context.AddRangeAsync(permissionList); await _context.SaveChangesAsync(); return(View()); }