Esempio n. 1
0
        public ActionResult Giris([FromBody] GirisDto kullanici)
        {
            var user = _apiDbContext.Kullanicilar.FirstOrDefault(k => k.Ad == kullanici.Adi || k.Soyad == kullanici.Soyadi);

            if (user == null)
            {
                return(Unauthorized());
            }

            var tokenHandler = new JwtSecurityTokenHandler();
            var key          = Encoding.ASCII.GetBytes(_configuration.GetSection("Appsettings:Token").Value);

            var tokenDescriptor = new SecurityTokenDescriptor
            {
                Subject = new ClaimsIdentity(new Claim[]
                {
                    new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()),
                    new Claim(ClaimTypes.Name, user.Ad),
                    new Claim(ClaimTypes.Surname, user.Soyad)
                }),
                Expires            = DateTime.Now.AddDays(1),
                SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key),
                                                            SecurityAlgorithms.HmacSha512Signature)
            };

            var token       = tokenHandler.CreateToken(tokenDescriptor);
            var tokenString = tokenHandler.WriteToken(token);

            return(Ok(tokenString));
        }
Esempio n. 2
0
        public async Task <IActionResult> GirisYap([FromBody] GirisDto girisBilgileri, string returnUrl)
        {
            return(await HataKontrolluDondur <Task <IActionResult> >(async() =>
            {
                var kullaniciEntity = await userManager.KullaniciyiGetirKullaniciAdinaGoreAsync(girisBilgileri.KullaniciAdi);
                if (kullaniciEntity == null || kullaniciEntity.Pasif)
                {
                    Sonuc sonuc = Sonuc.Basarisiz(new Hata[] { new Hata {
                                                                   Kod = "", Tanim = "Kullanıcı yok veya aktif değil!"
                                                               } });
                    return Ok(sonuc);
                }

                var result = await signInManager.PasswordSignInAsync(girisBilgileri.KullaniciAdi, girisBilgileri.Sifre, true, true);
                if (result.IsNotAllowed)
                {
                    Sonuc sonuc = Sonuc.Basarisiz(new Hata[] { new Hata {
                                                                   Kod = "", Tanim = "Kullanıcının giriş izni yok!"
                                                               } });
                    return Ok(sonuc);
                }
                if (result.IsLockedOut)
                {
                    Sonuc sonuc = Sonuc.Basarisiz(new Hata[] { new Hata {
                                                                   Kod = "", Tanim = "Kullanıcı hesabı bloke!"
                                                               } });
                    return Ok(sonuc);
                }
                if (result.RequiresTwoFactor)
                {
                    KayitSonuc <object> sonuc = KayitSonuc <object> .Basarisiz(new Hata[] { new Hata {
                                                                                                Kod = "", Tanim = "Kullanıcı 2 faktörlü giriş için gerekli işlemler yapılmamış!"
                                                                                            } });
                    return Ok(sonuc);
                }
                if (result.Succeeded)
                {
                    var identity = await GetClaimsIdentity(girisBilgileri, kullaniciEntity);
                    if (identity == null)
                    {
                        return Ok(KayitSonuc <object> .Basarisiz(new Hata[] { new Hata {
                                                                                  Kod = "", Tanim = "Kullanıcı adı ve/veya şifre yanlış!"
                                                                              } }));
                    }
                    var jwt = Tokens.GenerateJwt(identity, jwtFactory, girisBilgileri.KullaniciAdi, uygulamaAyarlari);
                    var tokenString = jwt.Result;

                    var kullanici = kullaniciEntity.ToKullaniciBilgi();
                    kullanici.GecerlilikOmruDakika = (int)uygulamaAyarlari.ValidFor.TotalSeconds;
                    var sonuc = KayitSonuc <object> .IslemTamam(new { tokenString, kullanici, returnUrl });
                    sonuc.Mesajlar[0] = "Giriş başarılı";
                    sonuc.Mesajlar.Add($"Hoşgeldiniz {kullanici.TamAdi}!");
                    return Ok(sonuc);
                }
                return Ok(KayitSonuc <object> .Basarisiz(new Hata[] { new Hata {
                                                                          Kod = "", Tanim = "Kullanıcı adı ve/veya şifre yanlış!"
                                                                      } }));
            }));
        }
Esempio n. 3
0
        public async Task <IActionResult> GirisYap([FromBody] GirisDto girisBilgileri, string returnUrl)
        {
            return(await HataKontrolluDondur <Task <IActionResult> >(async() =>
            {
                var sonuc = await signInManager.PasswordSignInAsync(girisBilgileri.KullaniciAdi, girisBilgileri.Sifre, true, true);
                if (sonuc.Succeeded)
                {
                    return await KullaniciBilgisiVeTokenYarat(girisBilgileri.KullaniciAdi);
                }

                return BadRequest("Kullanıcı adı ve/veya şifre yanlış");
            }));
        }
 public IActionResult Giris(GirisDto girisDto)
 {
     if (girisDto.txtKullaniciAdi == "Salih" && girisDto.txtSifre == "Salih")
     {
         return(RedirectToAction("Index", "AdminAnasayfa"));
     }
     else
     {
         return(View(new GirisCevapDto()
         {
             Error = "Kullanıcı Adı Şifresi Yanlış"
         }));
     }
 }
Esempio n. 5
0
        private async Task <ClaimsIdentity> GetClaimsIdentity(GirisDto girisBilgileri, Kullanici kullanici)
        {
            if (string.IsNullOrEmpty(girisBilgileri.KullaniciAdi) || string.IsNullOrEmpty(girisBilgileri.Sifre))
            {
                return(await Task.FromResult <ClaimsIdentity>(null));
            }

            // get the user to verifty
            var userToVerify = kullanici;

            if (userToVerify == null)
            {
                return(await Task.FromResult <ClaimsIdentity>(null));
            }

            // check the credentials
            if (await userManager.CheckPasswordAsync(userToVerify, girisBilgileri.Sifre))
            {
                return(await Task.FromResult(jwtFactory.GenerateClaimsIdentity(kullanici)));
            }

            // Credentials are invalid, or account doesn't exist
            return(await Task.FromResult <ClaimsIdentity>(null));
        }