![]() |
Session sonlandirma |
Post Reply ![]() |
|
Author | |
peaceful ![]() Groupie ![]() Joined: 11 Şubat 2010 Location: Turkey Status: Offline Points: 45 |
![]() ![]() ![]() ![]() ![]() 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
|
|
![]() |
|
izdirap ![]() Senior Member ![]() Joined: 07 Mayıs 2008 Status: Offline Points: 1149 |
![]() ![]() ![]() ![]() ![]() |
Session.Abondon() kullanmayı deneyin
|
|
Onur ÜNLÜ
http://onurunlu.blogcu.com |
|
![]() |
|
peaceful ![]() Groupie ![]() Joined: 11 Şubat 2010 Location: Turkey Status: Offline Points: 45 |
![]() ![]() ![]() ![]() ![]() |
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
|
|
![]() |
|
hümam ![]() Groupie ![]() Joined: 28 Nisan 2008 Status: Offline Points: 249 |
![]() ![]() ![]() ![]() ![]() |
şö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 |
|
![]() |
|
peaceful ![]() Groupie ![]() Joined: 11 Şubat 2010 Location: Turkey Status: Offline Points: 45 |
![]() ![]() ![]() ![]() ![]() |
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
|
|
![]() |
|
kemalakgun ![]() Newbie ![]() Joined: 03 Mayıs 2010 Status: Offline Points: 17 |
![]() ![]() ![]() ![]() ![]() |
Global.asax da sesion end ve application end de kontrol yapmayı denediniz mi?
|
|
![]() |
|
ICell ![]() Newbie ![]() Joined: 29 Ocak 2010 Location: Turkey Status: Offline Points: 22 |
![]() ![]() ![]() ![]() ![]() |
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 |
|
![]() |
|
ozatmaca ![]() Senior Member ![]() Joined: 16 Mart 2008 Location: Turkey Status: Offline Points: 1237 |
![]() ![]() ![]() ![]() ![]() |
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. |
|
...
|
|
![]() |
|
hackwebnet ![]() Senior Member ![]() Joined: 25 Kasım 2008 Status: Offline Points: 641 |
![]() ![]() ![]() ![]() ![]() |
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?
|
|
![]() |
|
peaceful ![]() Groupie ![]() Joined: 11 Şubat 2010 Location: Turkey Status: Offline Points: 45 |
![]() ![]() ![]() ![]() ![]() |
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
|
|
![]() |
|
peaceful ![]() Groupie ![]() Joined: 11 Şubat 2010 Location: Turkey Status: Offline Points: 45 |
![]() ![]() ![]() ![]() ![]() |
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
|
|
![]() |
|
ozatmaca ![]() Senior Member ![]() Joined: 16 Mart 2008 Location: Turkey Status: Offline Points: 1237 |
![]() ![]() ![]() ![]() ![]() |
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. |
|
...
|
|
![]() |
|
peaceful ![]() Groupie ![]() Joined: 11 Şubat 2010 Location: Turkey Status: Offline Points: 45 |
![]() ![]() ![]() ![]() ![]() |
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
|
|
![]() |
|
ozatmaca ![]() Senior Member ![]() Joined: 16 Mart 2008 Location: Turkey Status: Offline Points: 1237 |
![]() ![]() ![]() ![]() ![]() |
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. |
|
...
|
|
![]() |
|
peaceful ![]() Groupie ![]() Joined: 11 Şubat 2010 Location: Turkey Status: Offline Points: 45 |
![]() ![]() ![]() ![]() ![]() |
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
|
|
![]() |
|
emrefe ![]() Newbie ![]() Joined: 19 Kasım 2019 Location: Turkey Status: Offline Points: 1 |
![]() ![]() ![]() ![]() ![]() |
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.
|
|
![]() |
Post Reply ![]() |
|
Tweet
|
|
Forum Jump | Forum Permissions ![]() You cannot post new topics in this forum You cannot reply to topics in this forum You cannot delete your posts in this forum You cannot edit your posts in this forum You cannot create polls in this forum You cannot vote in polls in this forum |