C#nedir?com Homepage
Forum Home Forum Home > ASP.NET > ASP.NET
  New Posts New Posts RSS Feed - Session sonlandirma
  FAQ FAQ  Forum Search   Events   Register Register  Login Login

Session sonlandirma

 Post Reply Post Reply
   

Author
Message
peaceful View Drop Down
Groupie
Groupie


Joined: 11 Şubat 2010
Location: Turkey
Status: Offline
Points: 45
Post Options Post Options   Thanks (0) Thanks(0)   Quote peaceful Quote  Post ReplyReply Direct Link To This Post Topic: Session sonlandirma
    Posted: 21 Mayıs 2010 at 11:45
Merhabalar..

Projemde olusturdugum Session olayini "Oturumu Kapat" butonuna tiklandigi zaman sonlandirmak istiyorum. Bunun icin Session.Clear() komutunu kullaniyorum ancak oturum yine kapanmiyor. Uye olmayanlarin girememesi gereken sayfalara yine girebiliyor. Ancak tarayiciyi kapatirsam oturum kapanmis oluyor. Bu nasil cozebilirim?

Tesekkurler..
the person you have called cannot be reached at the moment, please try again later
Back to Top
izdirap View Drop Down
Senior Member
Senior Member


Joined: 07 Mayıs 2008
Status: Offline
Points: 1149
Post Options Post Options   Thanks (0) Thanks(0)   Quote izdirap Quote  Post ReplyReply Direct Link To This Post Posted: 21 Mayıs 2010 at 12:03
Session.Abondon() kullanmayı deneyin
Onur ÜNLÜ
http://onurunlu.blogcu.com
Back to Top
peaceful View Drop Down
Groupie
Groupie


Joined: 11 Şubat 2010
Location: Turkey
Status: Offline
Points: 45
Post Options Post Options   Thanks (0) Thanks(0)   Quote peaceful Quote  Post ReplyReply Direct Link To This Post Posted: 21 Mayıs 2010 at 21:55
Merhaba..

Session.Abondon() komutuyla tarayiciyi kapatmadan oturumu kapatabiliyor ve yeni kullanici acabiliyorum.

Ancak Admin yetkisine sahip bir kullanicinin oturumunu kapatip tekrar LOG IN sayfasina gittigim zaman diger sayfalara erisim engellenmiyor. Admin yetkileri devam ediyor.

Bu Session'i iptal etmenin bir yolu yok mu?

Tesekkurler..
the person you have called cannot be reached at the moment, please try again later
Back to Top
hümam View Drop Down
Groupie
Groupie


Joined: 28 Nisan 2008
Status: Offline
Points: 249
Post Options Post Options   Thanks (0) Thanks(0)   Quote hümam Quote  Post ReplyReply Direct Link To This Post Posted: 22 Mayıs 2010 at 00:31
Originally posted by peaceful peaceful wrote:

Merhaba..

Session.Abondon() komutuyla tarayiciyi kapatmadan oturumu kapatabiliyor ve yeni kullanici acabiliyorum.

Ancak Admin yetkisine sahip bir kullanicinin oturumunu kapatip tekrar LOG IN sayfasina gittigim zaman diger sayfalara erisim engellenmiyor. Admin yetkileri devam ediyor.

Bu Session'i iptal etmenin bir yolu yok mu?

Tesekkurler..


şöyle denesen peki

session["admin"]="GirisOK";

ve loginde bunu böyle doldur

kontrol yaparken
if(session["admin"] !="GirisOK")
  response.redireckt("login.aspx");

çıkış yaptığın sayfa da
session["admin"]="CikisYapildi";
response.redireckt(login.aspx);

bu işini görür bence


VERMEK İSTEMESEYDİ İSTEMEZ VERMEZDİ.
http://www.csharpnedir.com/Forum2/forum_posts.asp?TID=25373&PID=103855
Back to Top
peaceful View Drop Down
Groupie
Groupie


Joined: 11 Şubat 2010
Location: Turkey
Status: Offline
Points: 45
Post Options Post Options   Thanks (0) Thanks(0)   Quote peaceful Quote  Post ReplyReply Direct Link To This Post Posted: 23 Mayıs 2010 at 01:53
Merhaba..

Onu da denedim tabi..Ama bir yerlerde birsey yanlis gidiyor.. Session.Stop() gibi bir komuta ihtiyacim var..Session'i tamamen pasif hale getirecek..
the person you have called cannot be reached at the moment, please try again later
Back to Top
kemalakgun View Drop Down
Newbie
Newbie


Joined: 03 Mayıs 2010
Status: Offline
Points: 17
Post Options Post Options   Thanks (0) Thanks(0)   Quote kemalakgun Quote  Post ReplyReply Direct Link To This Post Posted: 23 Mayıs 2010 at 01:57
Global.asax da sesion end ve application end de kontrol yapmayı denediniz mi?
Back to Top
ICell View Drop Down
Newbie
Newbie


Joined: 29 Ocak 2010
Location: Turkey
Status: Offline
Points: 22
Post Options Post Options   Thanks (0) Thanks(0)   Quote ICell Quote  Post ReplyReply Direct Link To This Post Posted: 23 Mayıs 2010 at 04:25
Herşeyden önce, Session ile sayfalara giriş yapıp yapmama ayrı şeylerdir.  Senin sorunun Sessionla değil.
1- Sorunun Authorization veya Authentication ile ilgili olabilir.
2- Belirtmemişssin ama vatandaş logout yaptıktan sonra, browser ın Back tuşu ile mi sayfalara tekrar girebiliyor? Öyleyse sorunun farklı çözümü vardır. Yok sayfanın ismini yazıp entera basarak mı giriyor o zaman sorunun 1. madde ile ilgilidir.

Tekrar edeyim, bir sayfayı görme yetkisi ile Session arasında birebir bir alaka yoktur.
X someobject= new X();
someobject.ID="ICell";
this.FindControl("ICell") as X
Back to Top
ozatmaca View Drop Down
Senior Member
Senior Member


Joined: 16 Mart 2008
Location: Turkey
Status: Offline
Points: 1237
Post Options Post Options   Thanks (0) Thanks(0)   Quote ozatmaca Quote  Post ReplyReply Direct Link To This Post Posted: 23 Mayıs 2010 at 09:33
admin yetkilerini nasıl tutuoyrsunuz. eğer session da tutuoyrsanız abandon onları da temizler.
login olayını nasıl yapıyorsunuz ve admin yetkisini nasıl veriyorsunuz. kodlarını yazarmısınız.
...
Back to Top
hackwebnet View Drop Down
Senior Member
Senior Member


Joined: 25 Kasım 2008
Status: Offline
Points: 641
Post Options Post Options   Thanks (0) Thanks(0)   Quote hackwebnet Quote  Post ReplyReply Direct Link To This Post Posted: 23 Mayıs 2010 at 19:12
Cokie kullanmayı denedinizmi? Bence daha sağlıklı sonuçlar elde edebilirsiniz. Ayrıca şu şekilde yapabilirsiniz:

Login aspx sayfasında seesion ile veya cokie ile birlikte giriş yapan kullanıcının MD5 olarak sakladığınız şifresini veya kullanıcı adını atama yaparsınız. Yetki vermek istediğiniz hersayfada (masterpage kullanıyorsanız) veya masterpagede bir kontrol yazarsınız. Eğer databasedeki bilgiler ile sessiondaki bilgiler uyuşuyorsa işlem yaptırmasını sağlayabilirsiniz. Böylelikle hosting firmasından yeni bir host alan lamer sitenize saldırı yapamaz. Yoksa Mazallah kendi sitesinden sessionu doğru şekilde doldurur sitenizde istediğini yapar. Bu konu basit bir konu değil. Bu yüzden biraz araştırma yapmanızı tavsiye ederim. Ayrıca bütün bu anlattıklarımı uyguladıysanız çıkış yapabilmek için
Session.Clear();
Session.Remove("kullaniciGirisOK");
Session.RemoveAll(); komutları işinizi görecektir. Bu şekilde kullanmanızı tavsiye etmem. Ancak şu şekilde bir örnek verebilirim:

Login aspx:


string kullaniciadi = TextBoxKullaniciAdi.Text;
stirng Sifre= TextBoxSifre.Text;
string MD5Sifre = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(LoginPassword.Text, "MD5");
Response.reditect("LoginBasliyor.aspx?KullaniciAdi=" + kullaniciadi + "&Sifre=" + MD5Sifre);


LoginBasliyor.aspx

Page_Load Kısmı

//Burda Kullanıcı Bilgileri Doğrulamasını yap. Normal giriş yapılırken nasıl yapıyorsan o şekilde yap.

if(Bütün Yönergeler Doğruysa)
{
          HttpCookie cookie = new HttpCookie("cokieGirisOK");
          cookie.Name = "cokieGirisOK";
          string GirisYapanKisininSifresi = Request.QueryString.Get("Sifre");
          cookie.Values.Add("Sifre", GirisYapanKisininSifresi);
          cookie.Expires = DateTime.Now.Date.AddDays(1);
          HttpContext.Current.Response.Cookies.Add(cookie);
          HttpContext.Current.Request.Cookies.Add(cookie);
}

Giriş yapılan sayfa.aspx

string GirisYapanKullanici = Request.Cookies["cokieGirisOK"]["Sifre"];

if(GirisYapanKullanici != string.empty)//Bilgilerin boş olup olmadığını kontrol ediyoruz.
{
//Burda Yine bir kontrol yapıyoruz.
sqlcommand cmd = new sqlcommand("SELECT * FROM Kullanicitbl WHERE Sifre=@Sifre", baglanti);
cmd.Parameters.add("@Sifre", GirisYapanKullanici);
baglanti.open();
datareader rdr = cmd.executereader();
if(rdr != null)
{
while(rdr.read())
{
LabelGirisYapanKullanici = rdr["KullaniciAdi"].ToString();
}
else
{
response.reditect("Login.aspx");
}
}
else
{
response.reditect("Login.aspx");
}
}

//Bu güzel bir Giriş Örneğiydi. Şimdide çıkış yapalım:

//Herhangi bir butonun click eventine şu kodu yaz:

    HttpCookie cookie = new HttpCookie("cokieGirisOK");
    string GirisYapanKisininSifresi = "";
    cookie.Values.Add("Sifre", GirisYapanKisininSifresi);
    cookie.Expires = DateTime.Now.AddMilliseconds(1);
    HttpContext.Current.Response.Cookies.Add(cookie);
    HttpContext.Current.Request.Cookies.Add(cookie);
    Response.Redirect("Login.aspx");

//Yukarıdakide Çıkış örneğiydi.

//Kodlamada hata vardır. Sadece örnek amaçlı yazdığım içindir oda. Kodlarını düzenlersen sağlıklı bir login sayfan olacağına inanmaktayım...


Edited by hackwebnet - 23 Mayıs 2010 at 19:13
sişarp'da Nedir ki?
Back to Top
peaceful View Drop Down
Groupie
Groupie


Joined: 11 Şubat 2010
Location: Turkey
Status: Offline
Points: 45
Post Options Post Options   Thanks (0) Thanks(0)   Quote peaceful Quote  Post ReplyReply Direct Link To This Post Posted: 26 Mayıs 2010 at 08:11
Originally posted by ozatmaca ozatmaca wrote:

admin yetkilerini nasıl tutuoyrsunuz. eğer session da tutuoyrsanız abandon onları da temizler. login olayını nasıl yapıyorsunuz ve admin yetkisini nasıl veriyorsunuz. kodlarını yazarmısınız.


Dim member As String = Text_UserName.Text
        Dim sifre As String = Text_Password.Text
        Dim pass, usr, ID, name, surname, degree As String

        conn.ConnectionString = "Data Source=127.0.0.1;Initial Catalog=ABYS;User ID=abys;Password=1234"
        conn.Open()
        comm.Connection = conn

        comm.CommandText = "SELECT * FROM Tbl_Uye WHERE Kullanici_Adi= '" & Text_UserName.Text & "'"

        ps = comm.ExecuteReader()

        Do While ps.Read()
            degree = ps(5).ToString()
            pass = ps(4).ToString()
            usr = ps(3).ToString()
            surname = ps(2).ToString()
            name = ps(1).ToString()
            ID = ps(0).ToString
        Loop

        If Lbl_Sifrelenen.Text = pass Then
            Session("durum") = "open"

            Session("KullaniciAdi") = usr
            Session("Sifre") = pass
            Session("Isim") = name
            Session("Soyisim") = surname
            Session("Rutbe") = degree

            Session.Timeout = 60

            If Session("Rutbe") <> "User" Then
               Me.Response.Redirect("admin.aspx")
            ElseIf Session("Rutbe") <> "Admin" Then
               Me.Response.Redirect("index.aspx")
            End If
        Else
            Lbl_Mesaj.Text = "Kullanıcı adı veya Parola hatalı."
            Lbl_Mesaj.Visible = True

            ps.Close()
            conn.Close()
-----------------------------------------
Seklinde bir login islemi uyguluyorum. Oncelikle 6. sutundaki Rutbe kaydini aliyor, sonra bunu Session("Rutbe") olarak sakliyorum.

the person you have called cannot be reached at the moment, please try again later
Back to Top
peaceful View Drop Down
Groupie
Groupie


Joined: 11 Şubat 2010
Location: Turkey
Status: Offline
Points: 45
Post Options Post Options   Thanks (0) Thanks(0)   Quote peaceful Quote  Post ReplyReply Direct Link To This Post Posted: 26 Mayıs 2010 at 08:16
Originally posted by ICell ICell wrote:

Herşeyden önce, Session ile sayfalara giriş yapıp yapmama ayrı şeylerdir.  Senin sorunun Sessionla değil. 1- Sorunun Authorization veya Authentication ile ilgili olabilir.2- Belirtmemişssin ama vatandaş logout yaptıktan sonra, browser ın Back tuşu ile mi sayfalara tekrar girebiliyor? Öyleyse sorunun farklı çözümü vardır. Yok sayfanın ismini yazıp entera basarak mı giriyor o zaman sorunun 1. madde ile ilgilidir.Tekrar edeyim, bir sayfayı görme yetkisi ile Session arasında birebir bir alaka yoktur.


Merhaba..

Kisi logout yaptiktan sonra adres cubuguna sayfanin adini yazdiginda yonlenebiliyor. Aslinda girememesi lazim. Henuz hic login olmadigi zaman durumlar dogru isliyor ama logout yaptiktan sonra Session devam ediyor.

Tesekkurler..Ilk yazdiginiz durumlara bir goz atacagim..


Edited by peaceful - 26 Mayıs 2010 at 08:54
the person you have called cannot be reached at the moment, please try again later
Back to Top
ozatmaca View Drop Down
Senior Member
Senior Member


Joined: 16 Mart 2008
Location: Turkey
Status: Offline
Points: 1237
Post Options Post Options   Thanks (0) Thanks(0)   Quote ozatmaca Quote  Post ReplyReply Direct Link To This Post Posted: 26 Mayıs 2010 at 13:42
c# a göre yazacağım.
 If Session("Rutbe") <> "User" Then
bu durumda session null bile olsa bu şart doğru olarak sağlanır ve admine yönlendirilir. (tabi bu yeterli bir neden değil sadece bir hatayı belirttim)

peki sayfalarda admin kontrolünü nasıl yapıyorsunuz.
yani girilmemesi gereken bir sayfada adminmi değilmi diye nasıl bir kontrol yapıyorsunuz

ya da hepsi bi tarafa bu kodların üstüne bi breakpoint koyun sayfayı f5 ile çalıştırın  ve akılşı izleyin. hangi şartlar sağlanmaması gerektiği halde sağlanıyor onları görün. sessionların önceki değerlerini ve login olduktan sonraki değerlerini izleyin.
...
Back to Top
peaceful View Drop Down
Groupie
Groupie


Joined: 11 Şubat 2010
Location: Turkey
Status: Offline
Points: 45
Post Options Post Options   Thanks (0) Thanks(0)   Quote peaceful Quote  Post ReplyReply Direct Link To This Post Posted: 26 Mayıs 2010 at 14:31

Tesekkur ederim..Sorun cozuldu..

If Session("Rutbe") = "User" Then ile If Session("Rutbe") <> "Admin" Then demek arasinda nasil oluyorsa farklilik oluyor. Her kullanicinin mutlaka bir rutbesi var, bu yuzden Null olamaz zaten ve Admin degilse mecbur User olacagindan bu durum sacma. Farklilik olmamasi lazim ama yine de vaziyet bu.

Su an Session ile alakali bir sorun kalmadi. Herkese yardimlarindan dolayi tesekkur ederim..

Iyi calismalar..
the person you have called cannot be reached at the moment, please try again later
Back to Top
ozatmaca View Drop Down
Senior Member
Senior Member


Joined: 16 Mart 2008
Location: Turkey
Status: Offline
Points: 1237
Post Options Post Options   Thanks (0) Thanks(0)   Quote ozatmaca Quote  Post ReplyReply Direct Link To This Post Posted: 26 Mayıs 2010 at 16:24
fark şurdan kaynaklanıyor If Session("Rutbe") <> "Admin" Then  dediğiniz zaman session null bile olsa girer çünkü session abandon() yaptığınnızda sessionlar null oluuyor.
zaten null olduğu zaman bu şart hata oluşturur istisna fırlatır "object null referance ...." gibi. 

...
Back to Top
peaceful View Drop Down
Groupie
Groupie


Joined: 11 Şubat 2010
Location: Turkey
Status: Offline
Points: 45
Post Options Post Options   Thanks (0) Thanks(0)   Quote peaceful Quote  Post ReplyReply Direct Link To This Post Posted: 26 Mayıs 2010 at 16:38
Hmm..Anladim..Bu durumda Null durumu icin de bir If olusturmam gerekir.

Bazi komutlarin(Abandon gibi) tam olarak ne ise yaradigini bilmeyince olusan aciklari kapatmak icin saatlerce ugrasiyoruz iste..

Tekrar tesekkur ederim..
the person you have called cannot be reached at the moment, please try again later
Back to Top
emrefe View Drop Down
Newbie
Newbie


Joined: 19 Kasım 2019
Location: Turkey
Status: Offline
Points: 1
Post Options Post Options   Thanks (0) Thanks(0)   Quote emrefe Quote  Post ReplyReply Direct Link To This Post Posted: 19 Kasım 2019 at 13:42
Merhabalar,
Windows Form ekranında şöyle bir şey yapmak istiyorum. C:\Users klasörünün altında ki kişileri seçip silmek istiyorum bu seçme işini manuel seçilerek chckboxlar ile yapmayı düşünüyorum. Böylelikle 
1-) windwos accountlarını programı çalıştırırken nasıl çekerim. 
2-) seçmiş olduğum accountları delete ettikten sonra eş zamanlı olarak "Bilgisayar\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" bloğundan da silmem gerekiyor. 

Fikirlerinizi/yardımlarınızı talep ederim.

Teşekkürler.
Back to Top
 Post Reply Post Reply
  Share Topic   
   


Forum Jump Forum Permissions View Drop Down

Forum Software by Web Wiz Forums® version 11.01
Copyright ©2001-2014 Web Wiz Ltd.