Beispiel #1
0
        public async Task <IActionResult> Login(AppUserLoginVM loginVM)//Kullanıcı adı ve şifre
        {
            if (ModelState.IsValid)
            {
                AppUser user = await userManager.FindByNameAsync(loginVM.UserName);

                if (user != null)
                {
                    await signInManager.SignOutAsync();

                    var result = await signInManager.PasswordSignInAsync(user, loginVM.Password, false, false);

                    if (result.Succeeded)
                    {
                        if (await userManager.IsInRoleAsync(user, "Admin"))
                        {
                            return(RedirectToAction("Index", "Home", new { area = "Admin" }));
                        }
                        else if (await userManager.IsInRoleAsync(user, "Ogretmen"))
                        {
                            return(RedirectToAction("Index", "Home", new { area = "Ogretmen" }));
                        }
                        else if (await userManager.IsInRoleAsync(user, "Ogrenci"))
                        {
                            return(RedirectToAction("Index", "Home", new { area = "Ogrenci" }));
                        }
                    }
                }
            }
            return(View());
        }
Beispiel #2
0
        public async Task <IActionResult> SignIn(AppUserLoginVM model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }
            await _userManagerBusiness.AddLoginTimeClaim(model);

            var(result, twoFactor) = await _signInManagerBusiness.SignInAsync(model);

            if (result && TempData["ReturnUrl"] != null)
            {
                return(Redirect(TempData["ReturnUrl"].ToString()));
            }
            else if (result)
            {
                return(RedirectToAction("Index", "Home"));
            }
            else if (twoFactor)
            {
                return(RedirectToAction("TwoFactorAuthentication", new { ReturnUrl = TempData["ReturnUrl"] }));
            }

            MesajYaz(result, "Giriş başarılı.", "Kullanıcı adı/email veya şifre hatalı");
            return(RedirectToAction("SignIn"));
        }
        public async Task <IActionResult> Login(AppUserLoginVM loginVM)
        {
            if (ModelState.IsValid)
            {
                AppUser user = await userManager.FindByNameAsync(loginVM.UserName);

                if (user != null)
                {
                    await signInManager.SignOutAsync();

                    var result = await signInManager.PasswordSignInAsync(user, loginVM.Password, loginVM.RememberMe, false);

                    if (result.Succeeded)
                    {
                        if (await userManager.IsInRoleAsync(user, "Manager"))
                        {
                            return(RedirectToAction("Index", "Home", new { area = "Manager" }));
                        }
                        if (await userManager.IsInRoleAsync(user, "Case"))
                        {
                            return(RedirectToAction("Index", "Home", new { area = "Case" }));
                        }
                    }
                }
            }

            return(View());
        }
        public async Task <(bool, bool)> SignInAsync(AppUserLoginVM model)
        {
            AppUser user = await _userManager.FindByNameAsync(model.UsernameorEmail);

            Microsoft.AspNetCore.Identity.SignInResult result = null;
            if (user == null)
            {
                user = await _userManager.FindByEmailAsync(model.UsernameorEmail);
            }
            if (user != null)
            {
                result = await _signInManager.PasswordSignInAsync(user, model.Password, false, false);
            }
            return(result != null ? (result.Succeeded, result.RequiresTwoFactor) : (false, false));
        }
        public async Task <IActionResult> Login(AppUserLoginVM loginVM)
        {
            if (ModelState.IsValid)
            {
                AppUser user = await userManager.FindByNameAsync(loginVM.UserName);

                if (user != null)
                {
                    await signInManager.SignOutAsync();

                    var result = await signInManager.PasswordSignInAsync(user, loginVM.Password, loginVM.RememberMe, false);

                    if (result.Succeeded)
                    {
                        return(Redirect("/Home/Index"));
                    }
                }
            }
            return(View());
        }
        public async Task <IActionResult> Login(AppUserLoginVM loginVM)//kullanıcı adı ve şifre
        {
            if (ModelState.IsValid)
            {
                AppUser user = await userManager.FindByNameAsync(loginVM.UserName);

                if (user != null)
                {
                    await signInManager.SignOutAsync();

                    var result = await signInManager.PasswordSignInAsync(user, loginVM.Password, loginVM.RememberMe, false);

                    if (result.Succeeded)
                    {
                        //Todo: Member isimli Area içerisinde bulunan Home/Index'e yönlendirilecek.
                        return(Redirect("/Home/Index"));
                    }
                }
            }
            return(View());
        }
Beispiel #7
0
        public async Task <IActionResult> SignIn(AppUserLoginVM appUserLoginVM)
        {
            if (ModelState.IsValid)
            {
                AppUser user = await userManager.FindByEmailAsync(appUserLoginVM.Email);

                if (user != null)
                {
                    await signInManager.SignOutAsync();

                    var result = await signInManager.PasswordSignInAsync(user, appUserLoginVM.Password, false, false);

                    if (result.Succeeded)
                    {
                        return(RedirectToAction("Create", "Home", new { area = "admin" }));
                    }
                }
            }

            ModelState.AddModelError(string.Empty, "E-posta adresiniz veya şifreniz yanlış.");
            return(View());
        }
        public async Task <bool> AddLoginTimeClaim(AppUserLoginVM model)
        {
            AppUser user = null;

            user = await _userManager.FindByNameAsync(model.UsernameorEmail);

            if (user == null)
            {
                user = await _userManager.FindByEmailAsync(model.UsernameorEmail);
            }
            if (user != null)
            {
                Claim loginTimeClaim = (await _userManager.GetClaimsAsync(user)).FirstOrDefault(c => c.Type == "loginTime");
                if (loginTimeClaim != null)
                {
                    await _userManager.RemoveClaimAsync(user, loginTimeClaim);
                }
                IdentityResult result = await _userManager.AddClaimAsync(user, new Claim("loginTime", DateTime.UtcNow.ToString()));

                return(result.Succeeded);
            }
            return(false);
        }
Beispiel #9
0
        public async Task <IActionResult> Login(AppUserLoginVM loginVM)
        {
            if (ModelState.IsValid)
            {
                AppUser user = await userManager.FindByEmailAsync(loginVM.Email);

                if (user != null)
                {
                    if (await userManager.IsLockedOutAsync(user))
                    {
                        ModelState.AddModelError("", "Hesabınız bir süreliğine kilitlenmiştir. Lütfen daha sonra tekrar giriş yapmayı deneyiniz.");
                        return(View(loginVM));
                    }
                    if (userManager.IsEmailConfirmedAsync(user).Result == false)
                    {
                        ModelState.AddModelError("", "Email adresiniz onaylanmamıştır. Lütfen e-postanızı kontrol ediniz");
                        return(View(loginVM));
                    }
                    await signInManager.SignOutAsync();

                    Microsoft.AspNetCore.Identity.SignInResult result = await signInManager.PasswordSignInAsync(user, loginVM.Password, loginVM.RememberMe, false);



                    if (result.Succeeded)
                    {
                        await userManager.ResetAccessFailedCountAsync(user);

                        if (TempData["ReturnUrl"] != null)
                        {
                            return(Redirect(TempData["ReturnUrl"].ToString()));
                        }
                        return(Redirect("/Home/Index"));
                    }
                    else
                    {
                        await userManager.AccessFailedAsync(user);



                        int fail = await userManager.GetAccessFailedCountAsync(user);

                        ModelState.AddModelError("", $"En fazla 3 deneme hakkınız var. {fail} kez başarısız giriş");
                        if (fail == 3)
                        {
                            await userManager.SetLockoutEndDateAsync(user, new System.DateTimeOffset(DateTime.Now.AddMinutes(20)));

                            ModelState.AddModelError(string.Empty, "Hesabınız 3 başarısız girişten dolayı 20 dakika kilitlenmiştir. Lütfen 20 dakika sonra tekrar deneyiniz.");
                        }
                        else
                        {
                            ModelState.AddModelError(string.Empty, "E-posta adresiniz veya şifreniz yanlış.");
                        }
                    }
                }
                else
                {
                    ModelState.AddModelError(string.Empty, "Bu e-posta adresine kayıtlı kullanıcı bulunamamıştır.");
                }
            }
            return(View(loginVM));
        }