public ActionResult verifyPassword(string pass) { if (string.IsNullOrEmpty(pass)) { return(RedirectToAction(nameof(UserControl))); } string password = AppHash.HashPassword(pass); string id = User.FindFirst(ClaimTypes.NameIdentifier)?.Value; if (!string.IsNullOrEmpty(id)) { if (password == GetUserPassword(id)) { Message = string.Empty; return(RedirectToAction(nameof(ChangePassword), new { UId = password })); } else { Message = "كلمة المرور المدخلة غير صحيحة!!!"; } } return(RedirectToAction(nameof(UserControl))); }
private bool IsLoged(string username, string password) { DataTable dt = new DataTable(); Users cs = new Users(); string hash = AppHash.HashPassword(password); dt = cs.CheckLogin(username, hash); if (dt.Rows.Count > 0) { return(true); } return(false); }
public static AppHash GenerateNewSecret() { char[] chars = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '2', '3', '4', '5', '6', '7' }; string output = ""; AppHash code = new AppHash(); Random rnd = new Random(); for (int i = 0; i < 16; i++) { output += chars[rnd.Next(0, chars.Count() - 1)]; } code.Secret = output; return(code); }
public async Task <IActionResult> Create([Bind("id,UserName,Email,Password,PasswordConfirm,Phone,EmailConfirm")] AppUser appUser) { Message = string.Empty; successMsg = string.Empty; if (ModelState.IsValid) { string input = appUser.Password; if (!string.IsNullOrEmpty(input)) { DataTable dt = new DataTable(); Users users = new Users(); string userName = appUser.UserName; string email = appUser.Email; dt = users.CheckUserNameExist(userName); if (dt.Rows.Count < 1) { if (!IsEmailAddressExist(email)) { appUser.Password = AppHash.HashPassword(input); appUser.PasswordConfirm = AppHash.HashPassword(input); _context.Add(appUser); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } else { Message = "البريد الالكتروني المدخل (" + email + ") مستعمل"; return(View()); } } else { Message = "اسم المستخدم المدخل (" + userName + ") مستعمل"; return(View()); } } } return(View(appUser)); }
public async Task <ActionResult> ChangePassword(string pass, string passConfirm) { if (pass == null || passConfirm == null) { return(RedirectToAction(nameof(UserControl))); } string password = AppHash.HashPassword(pass); string id = User.FindFirst(ClaimTypes.NameIdentifier)?.Value; if (!string.IsNullOrEmpty(id)) { if (pass == passConfirm) { var user = await db.AppUsers.FirstOrDefaultAsync(a => a.id == id); if (user != null) { user.Password = password; user.PasswordConfirm = password; db.Attach(user); db.Entry(user).Property(x => x.Password).IsModified = true; db.Entry(user).Property(x => x.PasswordConfirm).IsModified = true; await db.SaveChangesAsync(); return(RedirectToAction(nameof(UserControl))); } } else { ViewBag.msg = "كلمتا المرور غير متطابقتين!!"; } } else { return(RedirectToAction("Index", "Home")); } return(View()); }
public async Task <bool> PasswordReset(string id, string password) { try { var user = await db.AppUsers.FirstOrDefaultAsync(s => s.id == id); if (user != null) { string pass = AppHash.HashPassword(password); user.Password = pass; user.PasswordConfirm = pass; db.Attach(user); db.Entry(user).Property(x => x.Password).IsModified = true; db.Entry(user).Property(x => x.PasswordConfirm).IsModified = true; await db.SaveChangesAsync(); return(true); } } catch { } return(false); }
public async Task <IActionResult> Register([Bind("id, UserName, Email, Password, PasswordConfirm, Phone, EmailConfirm")] AppUser appUser) { Message = string.Empty; successMsg = string.Empty; if (ModelState.IsValid) { if (!string.IsNullOrEmpty(IsEmailConfirm())) { if (IsEmailConfirm() == "true") { appUser.EmailConfirm = true; } else { appUser.EmailConfirm = false; } } else { appUser.EmailConfirm = false; } string input = appUser.Password; if (!string.IsNullOrEmpty(input)) { if (PasswordMinimumLength() > 0 && PasswordMaximumLength() > 0) { int min = PasswordMinimumLength(); int max = PasswordMaximumLength(); if (input.Length < min) { Message = "الخد الأدني لعدد احرف الباسوورد " + min + " مقاطع"; return(View()); } if (input.Length > max) { Message = "الخد الأعلي لعدد احرف الباسوورد " + max + " مقاطع"; return(View()); } } if (!string.IsNullOrEmpty(IsPasswordDigit())) { string isdigit = IsPasswordDigit(); if (isdigit == "true") { if (!input.Any(char.IsDigit)) { Message = "يجب ارفاق علي الاقل رقم واحد بكلمة المرور"; return(View()); } } } if (!string.IsNullOrEmpty(IsPasswordUpper())) { string isupper = IsPasswordUpper(); if (isupper == "true") { if (!input.Any(char.IsUpper)) { Message = "يجب ارفاق علي الاقل حرف كابيتال بكلمة المرور"; return(View()); } } } appUser.Password = AppHash.HashPassword(input); appUser.PasswordConfirm = AppHash.HashPassword(input); DataTable dt = new DataTable(); Users users = new Users(); string userName = appUser.UserName; string email = appUser.Email; dt = users.CheckUserNameExist(userName); if (dt.Rows.Count < 1) { if (!IsEmailAddressExist(email)) { int userCount = db.AppUsers.Count(); db.Add(appUser); string userId = appUser.id; await db.SaveChangesAsync(); string title = "تاكيد اشتراكك بموقع التجربة"; string body = "مرحبا " + userName + "<br />"; body += "يرجي الضغط علي الرابط ادناه لتفعيل اشتراكك بموق التجربة" + "<br />" + "<br />"; body += "https://localhost:44313/Acount/AccountValidate?UId=" + userId; if (SendEmail(email, body, title)) { if (await InsertEmailConfirm(userId)) { successMsg = "تم انشاء حسابك بنجاح يرجي زيارة بريدك الالكتروني لتفعيل حسابك"; if (!string.IsNullOrEmpty(IsSendEmailAfterRegister())) { if (IsSendEmailAfterRegister() == "true") { title = "شكرا لتسجيلك معنا بموقع التجربة"; body = "مرحبا " + userName + "<br />"; body += "شكرا لتسجيلك معنا بموقع التجربة"; SendEmail(email, body, title); } } } else { Message = "خطأ بعملية اضافة الحساب, يرجي المحاولة لاحقا"; } } else { if (await InsertEmailConfirm(userId)) { Message = "تم انشاء حسابك بنجاح وتعذر ارسال رسالة التفعيل الي بريدك الالكتروني"; } } string roleId = string.Empty; if (userCount <= 0) { AppRole appRole = new AppRole(); appRole.RoleName = "Admin"; await db.AddAsync(appRole); await db.SaveChangesAsync(); roleId = appRole.id; appRole.id = Guid.NewGuid().ToString(); appRole.RoleName = "SuperVisor"; await db.AddAsync(appRole); await db.SaveChangesAsync(); appRole.id = Guid.NewGuid().ToString(); appRole.RoleName = "Member"; await db.AddAsync(appRole); await db.SaveChangesAsync(); UserRole userRole = new UserRole(); userRole.RoleId = roleId; userRole.UserId = userId; await db.AddAsync(userRole); await db.SaveChangesAsync(); } else { roleId = Data.AppAuthentication.GetRoleId("Member"); if (!string.IsNullOrEmpty(roleId)) { UserRole userRole = new UserRole(); userRole.RoleId = roleId; userRole.UserId = userId; await db.AddAsync(userRole); await db.SaveChangesAsync(); } } return(RedirectToAction(nameof(Register))); } else { Message = "البريد الالكتروني المدخل (" + email + ") غير متوفر"; return(View()); } } else { Message = "اسم المستخدم المدخل (" + userName + ") غير متوفر"; return(View()); } } } return(RedirectToAction(nameof(Register))); }
public async Task <IActionResult> Edit(string id, [Bind("id,UserName,Email,Password,PasswordConfirm,Phone,EmailConfirm")] AppUser appUser) { if (id != appUser.id) { return(NotFound()); } Message = string.Empty; successMsg = string.Empty; if (ModelState.IsValid) { try { string input = appUser.Password; if (input != pass) { appUser.Password = AppHash.HashPassword(input); appUser.PasswordConfirm = AppHash.HashPassword(input); } DataTable dt = new DataTable(); Users users = new Users(); if (user != appUser.UserName) { dt = users.CheckUserNameExist(appUser.UserName); if (dt.Rows.Count > 0) { Message = "اسم المستخدم المدخل (" + appUser.UserName + ") مستعمل"; return(View()); } } if (email != appUser.Email) { if (IsEmailAddressExist(email)) { Message = "البريد الالكتروني المدخل (" + appUser.Email + ") مستعمل"; return(View()); } } _context.Update(appUser); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!AppUserExists(appUser.id)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } return(View(appUser)); }