示例#1
0
        public async Task <IActionResult> Get(int id, [FromQuery] string neden, [FromQuery] string alanlar)
        {
            return(await KullaniciVarsaCalistir <IActionResult>(async() =>
            {
                if (id <= 0)
                {
                    return BadRequest(KayitSonuc <ProfilYazDto> .Basarisiz(new Hata[] { new Hata {
                                                                                            Kod = "", Tanim = SonucMesajlari.Liste[MesajAnahtarlari.SifirdanBuyukDegerGerekli]
                                                                                        } }));
                }

                var kayit = await kullaniciRepo.BulAsync(id);
                if (kayit == null)
                {
                    var sonuc = Sonuc.Basarisiz(new Hata[] { new Hata {
                                                                 Kod = "", Tanim = "Kullanıcı bulunamadı!"
                                                             } });
                    return Ok(sonuc);
                }
                if (neden == "yaz")
                {
                    var yazSonucDto = KayitSonuc <ProfilYazDto> .IslemTamam(kayit.ToDto());
                    return Ok(yazSonucDto.ShapeData(alanlar));
                }
                var resource = KayitSonuc <KullaniciDetayDto> .IslemTamam(kayit.ToKullaniciDetayDto());
                return Ok(resource.ShapeData(alanlar));
            }));
        }
示例#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ış!"
                                                                      } }));
            }));
        }