• 19-06-2020, 17:13:03
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Merhaba üstadlar, bir projem varda 2-3 ay önce domain şirketi serverleri güncellemeden önce her şey güzel çalışıyordu.
    Şimdi ise kullanıcıya giriş yaptırdıktan sonra 2-3 sayfalar arasında gezinmeye, veri girişi yapmaya veya 30-50 saniye ana sayfada beklemeyle login sayfasında atadığım Sessionlara; verdiğim değerler siliniyor.
    Hayliyle verdiğim değer eşleşiyor ise oturum devam ediyor, eşleşmiyorsa login sayfasına yönlendiriyor.

    (Kod: Session["KULLANICI_YETKI"] olarak girişte atıyorum. Anasayfaya yönlendirdiğimde Labele değeri yazdırıyorum Admin olarak gözüküyor.

    Sayfanın yüklenme kısmında protected void Page_Load(object sender, EventArgs e) {}
    aşağıdaki kodlarlar oturum süresince kontrol ediyorum.
    if (Session["KULLANICI_YETKI"] == "Admin" || Session["KULLANICI_YETKI"] == "Moderator" ) { }
    else if (Session["KULLANICI_YETKI"] == "" ) { Response.Redirect ~/default.aspx?Postback_Login_Page=OturumKapali }
    else if (Session["KULLANICI_YETKI"] == null) {Response.Redirect ~/default.aspx?Postback_Login_Page=YetkisizGiris}

    else {Response.Redirect"~/default.aspx?hata=teknik_sorun"}

    Sorunumu belirttiğim gibi 30-50 saniye sonra login sayfasına "(else if Session["KULLANICI_YETKI"] == null") kodu çalışarak YetkisizGiris hatasını alıyorum.
    protected void Page_Load(object sender, EventArgs e) {} 'deki kodlaru silince Labele girişte yazdırdım Admin Kelimesi boş kalıyor.
    Server güncellemesinden sonra yedeklerimi yükledim yinede sorun düzelmedi, web. config sessionState mode= InProc timeout= 20 ayarlı





    HttpCookie KULLANICI = new HttpCookie("KULLANICI");
    KULLANICI["YETKI"] = "Admin";
    KULLANICI["ADISOYADI"] = drKullanici_Girisi["AdSoyad"].ToString();
    KULLANICI.Expires = DateTime.Now.AddMinutes(20);
    Response.Cookies.Add(KULLANICI);

    Cookie kullanmakta ne kadar doğru olur bilmiyorum bilgili bir üstad aytınlatırsa çok sevinirim. Çünkü veri kayıt sırasında Cookie tarayıcıdan değiştirele biliyor.

    (örnk: Veri Kayıtı yaparken KULLANICI["ADISOYADI"] F12 yapıp başka değer girdiğimde Acces verdiğim değer geldiğini gördüm.


    Yardımcı olur musunuz, Nerede hata yapıyorum?
  • 20-06-2020, 10:06:42
    #2
    asp.net session iis application pool a baglidir. uygulama sınırlarına eristiginde resetlenir. buna bağlı olan session da resetlenmis olur. bu yuzden kendi sunucunuz yoksa paylasimli hostinglerde session surekli patlar. cozumu cokie kullanmak. lakin cokie icine uyeid gibi sayisal degistirilmesi kolay veriler koyulmamali. diyelim uyeler tablosu var. id kolonuna ek olarak uniqid kolonu da gerekli. uniqid bir guid olabilir. sql serverdaki karsiligi uniqidendifer. bu guid cokie atilir ve dogrulama kontrol bu uniqid ye gore yapilir. arkaplanda session yaptigi da budur.session a atanan deger hafizada bir sifreli kimlikle tutulur ve tarayiciya cokie olarak bu kimlik gonderilir.
  • 20-06-2020, 15:21:41
    #3
    Çok Teşekkür Ederim hemen araştırıp uyguluyorum dediğinizi 🙏🏻