Ana Sayfa / Blog Yazılarım / Siteye Kullanıcı Kaydı ve Giriş Kodları

Siteye Kullanıcı Kaydı ve Giriş Kodları

  • BugraSoft
  • 21/12/2023
  • 1 Yorum
  • 123 Görüntülenme

Merhaba, bugün sisteme kullanıcı kaydı ve giriş yapma kodlarını paylaşacağım. İlk olarak sisteme kayıt olmayla başlayalım.


Öncelikle kayıt olma sayfasını oluşturalım



<div class="register-container">

      

        <h2>Kayıt Ol</h2>

        <form method="post" action="/DestekHome/Register">

            @Html.AntiForgeryToken()

            <div class="form-group">

                <input type="text" name="KullaniciAdi" placeholder=" Kullanıcı Adı" maxlength="50" required>

            </div>

            <div class="form-group">

                <input type="password" name="Sifre" placeholder=" Şifre" maxlength="50" required>

            </div>

  

            <div class="form-group">

                <input type="email" name="Mail" placeholder="E-posta" maxlength="200" required>

            </div>

            <div class="form-group">

                <input type="number" name="Telefon" placeholder="Telefon" required>

            </div>

            <div class="form-group">

                <input type="submit" value="Kayıt Ol">

            </div>

        </form>

        <div class="col-12">

            @if (!string.IsNullOrEmpty(ViewBag.Uyari))

            {

                <div class="alert alert-danger text-center">@ViewBag.Uyari</div>

            }

                    @if (!string.IsNullOrEmpty(ViewBag.ErrorMessage))

            {

                <div class="alert alert-danger text-center">@ViewBag.ErrorMessage</div>

            }

 

        </div>

        <p class="login-link">Zaten hesabınız var mı? <a href="/DestekHome/Login">Giriş Yapın</a></p>

    </div>



Daha Sonra Controller'a kayıt olma kodlarını yazalım.



public ActionResult Register()

        {

            ViewBag.ErrorMessage = TempData["ErrorMessage"as string;

            return View();

        }

[HttpPost]

[ValidateAntiForgeryToken]

public ActionResult Register(Kullanicilar kullanicilar, string KullaniciAdi, string Sifre)

        {

            try

            {

                if (ModelState.IsValid)

                {

                    // Veritabanında aynı kullanıcı adını içeren bir kayıt var mı kontrol et

                    var existingUser = db.Kullanicilars.FirstOrDefault(a => a.KullaniciAdi == kullanicilar.KullaniciAdi);

 

                    if (existingUser == null)

                    {

                        kullanicilar.Sifre = Crypto.Hash(Sifre, "MD5");

                        // Aynı kullanıcı adı veritabanında yoksa yeni kaydı ekleyin

                        db.Kullanicilars.Add(kullanicilar);

                        db.SaveChanges();

                        var l = db.Kullanicilars.Where(x => x.KullaniciAdi == kullanicilar.KullaniciAdi ).SingleOrDefault();

                        Session["KullaniciId"] = l.KullaniciId;

                        Session["KullaniciAdi"] = l.KullaniciAdi;

                        Session["Sifre"] = l.Sifre;

                        Session["Mail"] = l.Mail;

                        Session["Telefon"] = l.Telefon;

                        return RedirectToAction("Index");

                    }

                    else

                    {

                        ViewBag.Uyari = "Bu Kullanıcı adı zaten kullanılıyor";

                        return View();

                    }

                }

 

                return View(kullanicilar);

            }

            catch (Exception ex)

            {

               

 

             TempData["ErrorMessage"] = "Bir hata oluştu. Lütfen daha sonra tekrar deneyin.";

                return RedirectToAction("Register");

            }

          

        }



Kayıt olma işleminden sonra zaten otomatik giriş yapacaktır. Şimdi ise giriş yapma işlemini yapalım öncelikle giriş sayfasını oluşturalım.



<div class="login-container">

        <h2>Giriş Yap</h2>

        <form method="post" action="/DestekHome/Login">

 

            <div class="form-group">

                <input type="text" placeholder="Kullanıcı Adı" name="KullaniciAdi" required>

            </div>

            <div class="form-group">

                <input type="password" name="Sifre" placeholder="Şifre" required>

            </div>

            <div class="form-group">

                <input type="submit" value="Giriş Yap">

            </div>

        </form>

        <div class="col-12">

            @if (!string.IsNullOrEmpty(ViewBag.Uyari))

            {

                <div class="alert alert-danger text-center">@ViewBag.Uyari</div>

            }

 

 

        </div>

        <p class="register-link">Hesabınız yok mu? <a href="/DestekHome/Register">Kayıt Olun</a></p>

    </div>



Şimdi ise Controller'a gidip giriş yapma kodlarını yazalım.



[HttpPost]

public ActionResult Login(Kullanicilar kullanicilar , String Sifre)

        {

 

            var s = Crypto.Hash(Sifre, "MD5");

            var l = db.Kullanicilars.FirstOrDefault(x => x.KullaniciAdi == kullanicilar.KullaniciAdi );

 

            if (l != null && l.Sifre == s)

            {

                // Kullanıcı doğrulandı, oturumu başlat

                Session["KullaniciId"] = l.KullaniciId;

                Session["KullaniciAdi"] = l.KullaniciAdi;

                return RedirectToAction("Index""DestekHome");

            }

 

            // Kullanıcı adı veya parola yanlış ise uyarı mesajı görüntüle

            ViewBag.Uyari = "Kullanıcı adı veya şifre yanlış";

            return View();

 

        }



Giriş işlemleri de bu kadardı şimdi ise çıkış yapma kodunu yazalım



public ActionResult Logout()

        {

            Session["KullaniciId"] = null;

            Session["KullaniciAdi"] = null;

            Session["Tesis"] = null;

            Session["Sifre"] = null;

            Session["Mail"] = null;

            Session["Telefon"] = null;

            Session.Abandon();

 

            return RedirectToAction("Login""DestekHome");

 

        }



Evet bugünde kayıt,giriş ve çıkış işlemlerinden kısa bir şekilde bahsettik önemli olan şey veri tabanındaki sütunlar ile inputlar'ın name'i aynı olmalıdır yoksa karışabiliyor.

Yorumlar

Ömer Selçuk Göksu

Ellerine sağlık.

BugraSoft

Teşekkürler

Yorum Yap