![]() | |
| | #1 (permalink) |
| Üye Üyelik Tarihi: 04/2007
Mesaj: 53
| Merhabalar, Benim iki sorum olacak: Birincisi; Uygulamamda c# da giren her kullanıcıya web serviste session açıyorum ve veritabanına session id yi ve girdi değerini true olarak yazıyorum.Tekrar aynı kullanıcı adıyla giriş yapıldığında önce açılan sessionu kapatmak istiiyorum ama kapatamıyorum.Global.asax de session_end olayında "UPDATE PERSONELGC SET GIRIS='FALSE' where SESSIONID='" + Session["SESSIONID"] + "'"; koları var.Eğer c# programında form kapatılırsa veritabanı değeri false olsun diye bu kodları yazdım(bu yüzden önce açılan sessionu kapatamıyor olabilirim) Önce açılmış olan sessionu abondon() nasıl edebilirim. İkinci problemim; C# dan web servise her istek geldiğinde benim kullanıcı adı, sessionid'yi kontrol etmem lazım(sessionid o kullanıcıya aitmi diye). Bunu web servisinde her methodun basına kontrol koyarak yapmam imkansız.Gerek http module gerekse global.asax deki Application_AuthenticateRequest olayları işime yaramadı.Servisteki consructer de kontrol yapayım dedim, ordada session["Kullanıcıadi"]==null ifadesinde hata çıktı(sanırım session henüz yaratmamış olduğundan).Bu konuda fikir verebilecek arkadaşlara teşekkür ederim. |
| | |
| | #3 (permalink) |
| Üye Üyelik Tarihi: 04/2007
Mesaj: 53
|
Çünkü web servisi her giren kullanıcıya sessionid atar ve kullanıcı işlemleri o session üzerinden gerçekleşir.Başka bir kullanıcı girdiğinde o kullanıcıya da baska bir sessionid atar.Dolayısıyla ben iki kullanıcıyı sessionid ler ile ayırt edebilirim.Olayı ve kurduğum mantığı şu şekilde ifade edeyim.Kullanıcı adı "hulya" ile giriş yaptım ve veritabanına aşağıdaki gibi kayıt edildi kullanıcı adı ipno girdi sessionid hulya 127.0.0.1 true er54t367yghuftrgevb67scol başka bir bilgisayardan hulya ile giriş yaptım ve veritabanına şu şekilde kayıt edildi kullanıcı adı ipno girdi sessionid hulya 127.0.0.1 true er54t367yghuftrgevb67scol hulya 192.68.2.2 true hgyt678gfr34sdmkolbg54ef ben ilk girilen kullanıcının sessionu kapatmam lazım(Ama nasıl olacak bilemiyorum ). ve web servise herhangi bir istek geldiğinde sessionid yi kontrol etmeliyim ki işlem yapan kullanıcı gercekten sistemde oturum açtığımız kullanıcı mı diye?(yani güvenlik için bunları yapmam lazım) |
| | |
| | #4 (permalink) |
| Bursa Üyelik Tarihi: 02/2005 Yer: Bursa
Mesaj: 559
|
Aklıma gelen en mantıklı yol şu. Kullanıcının sessionid sini veritabanından kontrol edip true veya false değer döndüren bir fonksiyon oluşturman. Her webmethodun içindede if(Kullanici_Onaylandi()) { // eğer kullanıcı doğru sessionid ye sahipse yapılacaklar. } şeklinde kullanmak olacaktır. Veya biraz daha dolambaçlı bir yol izleyerek global.asax dosyasının senin webservislerinin bulunduğu klasöre erişim yapılmak istenince Application_beginrequest olayında session'ı kontrol edip ilgili bilgilere ulaşıp-ulaşmamasını sağlayabilirsin. Yanlız bundada şöyle bir durum var login olunan fonksiyon veya metodu bu erişim sınırlamasından muaf tutman gerekir. İlk aklıma gelenler bunlar. |
| | |
| | #5 (permalink) |
| Üye Üyelik Tarihi: 04/2007
Mesaj: 53
|
Tekrar Merhabalar, Ya ben yapmaya çalışıyorum da şöyle düşündüm. Session oluşturduğum yerde session değerlerini object bir diziye atıyorum. publicvoid OturumAc(string _PersonelId, string _giriss) { string ipadres = HttpContext.Current.Request.UserHostAddress; Session["PERSONELID"] = _PersonelId; Session["IP"] = ipadres; Session["DURUM"] = _giriss; Session["SESSIONID"] = Session.SessionID; Session.Timeout =10; dizi = newobject[4] { _PersonelId.ToString(), ipadres.ToString(), _giriss.ToString(), Session.SessionID.ToString() }; } şeklinde.Tabi baş tarafta publicobject []dizi; tanımlamasını yaptım. Diğer bir methot da karşılaştırma yapıyorum veritabanı ile publicbool SessonKontrol() { if (dizi[1].ToString() !=null ) { string sorg = "SELECT * FROM PERSONELGC WHERE PERSONELID='" + dizi[0]+ "' AND GIRIS='" +dizi[2]+ "' AND SESSIONID='" + dizi[3]+ "'"; if (DB.Sorgula(sorg, " PersonelIslem ()").Tables[0].Rows.Count > 0) { returntrue; } else returnfalse; } else return false; } Fakat if (dizi[1].ToString() !=null ) satırında sayfa görüntüleyemiyor diye bir hata çıkıyor.Acaba bir methodun içinde tanımladığım değişkeni başka bir methodun içinde kullanamıyormuyum. |
| | |
| | #6 (permalink) |
| Bursa Üyelik Tarihi: 02/2005 Yer: Bursa
Mesaj: 559
|
Oturum açmak için gerekli fonksiyon ilk etapta true/false bir değer bildirsin. Mesela; PHP Kodu: PHP Kodu: |
| | |
| | #7 (permalink) |
| Üye Üyelik Tarihi: 04/2007
Mesaj: 53
|
Merhabalar, Ya yazdıklarını deniyorumda string personelid = Session["PERSONELID"]; satırında sayfa görüntülenemiyor diyor. string personelid = Session["PERSONELID"].ToString(); ifadesni de kullandım yine aynı hata çıkıyor. Siz de bu kodlar çalışmışmıydı acaba?Bende niye çalışmıyor ki? string personelid =Convert.ToString( Session["PERSONELID"]); ifadesinide yazdım yine olmuyor? Global.asax dede session_start olayına Session["PERSONELID"]=""; ifadesi yerleştirdim (hani oturum açmadan bi method çağrıldığında hata çıkmasın diye) ama hata çıkmaya devam ediyor???? |
| | |
| | #9 (permalink) |
| Üye Üyelik Tarihi: 04/2007
Mesaj: 53
|
Hata verilen yeri zaten breakpoint koyarak bulmuştum. string personelid = Session["PERSONELID"]; satırında hemen sayfa görüntülenemiyor diyor.O satırı çalıştıramıyor.EnableSession=true ifadesini koymamıştım ama eklediğimde hata yine devam ediyor. Try catch ekledim ve aynı satırda catche düştü.Hataya baktığımda "NullReferenceExeption was caught" başlığında "Object reference not set to an instance of an object" hatası çıktı. |
| | |
![]() |
| Bookmarks |
| Seçenekler | |
| |
Benzer Konular | ||||
| Konu | Konuyu açana göre | Forum | Cevap | En Son Mesaj |
| Pencere Kapatma | phpinfo | PHP | 4 | 25/09/2007 19:04 |
| PHP XSS kapatma | Komancix | PHP | 5 | 12/03/2007 17:08 |
| form1 i kapatma | aneksi | Visual Basic | 5 | 29/01/2007 16:02 |
| Bir javascript hatası sessionu silebilirmi.. | pirilti | Javascript / DHTML / Ajax | 9 | 24/07/2006 11:22 |
| Pencereleri Kapatma | akonuralp | Javascript / DHTML / Ajax | 1 | 31/05/2005 10:02 |
| Reklamlar & Desteklenenler | |
| Hassas Valf | Hassas Kaplama | Antalyamız | Gazete | Ticari Bilişim | Hakan Müştak | Rüya Tabirleri | Kadın | Hastalıklar | Cepte msn ve e-posta | Webmaster | Antalya Aupair | Turkish Property Antalya | Forum | Chat | Perde | Adsl | Araba | bolindir.com | guncelle.com | livescore | Web Tasarım | evden eve nakliyat | forum | evden eve | sohbet | Resimcim| Kalifiye İnsan Kaynakları | Web Tasarım | Oyun | Yusuf KOÇ | Akın Yorulmaz | şiir | UFO | Web Tasarım | Oyunlar | Canlı Tv | |