İçeriğin rss beslemesi kullanımda değil Soru - Cevap Bölümü

Kullanıcıya Ait Cevap

adres mdemirci01 profilini göster
Murat Demirci 26.05.2005 01:03:33
En iyi cevap mı ?
Faydalı cevap

Evet kullanıcı sayısı epey fazla, bu durumda Application kapsamı yerine veritabanı kullanacağız. Ayrıca böylece çözümümüz ‘Cluster destekli’ olacak.

Veritabanında kullanıcıların kayıtlı olduğu bir KULLANICI tablosu olduğunu varsayıyorum. Bu tabloya NULLABLE bir LOGIN_ID alanı eklemeliyiz. Bu alandaki değer eğer NULL ise bu üyenin şu an oturum açmadığı anlamına gelir. Bu alanda oturum açan kullanıcı için bir UUID kaydedeceğiz.

Kullanıcı oturum açarken kullanıcı adı ve şifre kontrolü yapıp veritabanından kullanıcı bilgileri getirerek kullanıcının oturum açıp açamayacağına karar verdiğimiz yerde ilave olarak bu LOGIN_ID’yi de kontrol edeceğiz.

LOGIN_ID 

boş/null ise kullanıcının oturum açmasına izin vereceğiz ve kullanıcının

CFID:CFTOKEN 

bilgilerini bu LOGINID’ye kaydedeceğiz (update işlemi). (Eğer LOGINID için

createUUID() 

ile başka bir UUID kullanırsanız Session kapsamına da bu değeri kaydedin, çünkü sonra her request için karşılaştırma yapacağız)

Eğer LOGIN_ID dolu ve kullanıcının şu an ki

CFID:CFTOKEN

bilgileri ile aynı ise kullanıcıya yine izin vereceğiz. (Eğer varsayılan 20 dakika kalıcı çerezli session ve cflogin framework’ünü bir arada kullanıyorsanız bu gerekli)

Fakat LOGIN_ID dolu ve içerdiği değer

CFID:CFTOKEN

‘dan farklıysa kullanıcıya bu kullanıcının zaten oturum açmış olduğunu mevcut oturumu kapatarak oturum açmak isteyip istemediğini soracağız. Kullanıcı evet derse LOGIN_ID’ye yeni CFID:CFTOKEN’ı kaydedeceğiz ve oturum açmasına izin vereceğiz.

Ayrıca her request için aktif oturumun geçerli olup olmadığını kontrol etmek durumundayız. Bu kontrolde LOGIN_ID ile CFID:CFTOKEN’ı karşılaştırırız. Eğer farklıysa bu kullanıcının oturumu artık geçersiz demektir.

Son olarak kullancı kendi isteğiyle oturumu kapattığında ve session timeout olduğunda (artı eğer cflogin framework’ünü kullanıyorsanız login timeout olduğunda, ki login, session’dan önce timeout olabilir) kullanıcının veritabanı kaydındaki

LOGIN_ID'yi NULL

yapın.

(Not: Application.cfc kullanırsanız onSessionEnd() metodu session timeout olduğunda otomatikman çalışıyor! Aksi taktirde session timeout’u Java’ya girerek anlamak zorundasınız veya her request için login geçerliliği kontrolü yapmak yerine mevcut açık oturumu başka bir oturumdayken kapatmak zorundasınız (ki bu bir hile ile yapılabilir, o yüzden önerilmez). Eğer session timeoutu algılatamıyorsanız, sorun değil, bu çözüm yine de çalışır)

Bu çözümü performans açısından irdeleyelim. Sistemi etkileyebilecek fazladan iki sorgu yapıyoruz: biri oturum açıldıktan sonra yapılan update işlemi, diğeri de her request için yaptığımız oturum geçerlilik kontrolü. Her iki işlemde

KULLANICI_ID

yani Primary Key alan kullanılarak yapılacağı için performansı çok az etkileyecektir. Ayrıca MySQL değilde daha gelişmiş SQLServer veya Oracle gibi veritabanları kullanıyorsak bu veritabanları update işleminde sadece ilgili satırı kilitlediğinden KULLANICI tablosu üzerindeki diğer işlemler normal şekilde çalışacaktır.

Evet bu yöntem her yönden gayet iyi (yine de ek öneriler ve düzeltmelere açığım elbette). iyi çalışmalar,

25/05/2005 - 04:54:27 cevap (5) Okunma : 8114 Bu yazıyı 0 kişi tuttu.

Coldfusion Oturum Yönetimi

Oturum açma ile ilgili. Kullanıcı kullanıcı adı ve şifresi ile bir bilgisayarda oturum açtığında, aynı kullanıcı adı ve şifre ile başka bir bilgisayarda oturum açmasını nasıl engelleyebiliriz.

Ya da bir önceki nin kapanmasını nasıl sağlayabilriz. Bir çok çözüm düşündüm ancak Application faaliyet alanının doğasını tam olarak çözememem nedeniyle başarısız oldum.

Düşüncem şu yönde idi.

Kullanıcılar sisteme giriş yaptıklarında Application faaliyet alanında oturum açan kullanıcıların bilgilerini tutan bir havuz oluşturmayı planladım. Kullanıcı ile bağlantılı bir veriyi burada saklamayı düşündüm.

Kullanıcı giriş yapmayı denediğinde -örneğin kullanıcı adını Application da depolamış isem- havuz içerisinde bulunan kayıtlar arasında bir kontrol yaparak kullanıcı girişine izin vermeyi yada kısıtlama getirmeyi planlıyordum. içinden çıkamağıdım nokta kullanıcılar siteyi terk ettiklerinde yani oturumları kapandığında, oluşması gerekli olayları hayal edememiş olmam.

Bir de diyelim 30-40 bin kullanıcının online olması olası bir uygulamada bu şekilde Application faaliyet alanına yüklenmenin ColdFusion’un doğası üzerinde yapacağı etkiden tedirgin oldum.

Yani kısaca yapamadım.

yeni üyelik | şifremi unuttum

aç-kapa Yarışma Fikir10000 Dijital Pazarlama Fikir Yarışması

Fikir10000 Dijital Pazarlama Fikir Yarışması

ADTECH tarafından düzenlenen Fikir10000 yarışmasına; dijital pazarlama ile ilgili size ait olan fikrinizle katılabilir ve 10.000 YTL’lik birinci...
Kategori: Yarışma

aç-kapa Toplantı Kahraman ve need4code.com Projesi Connect Toplantısı

Kahraman ve need4code.com Projesi Connect Toplantısı

Selam arkadaslar, Programlama ile uğraşanların hayatlarını kolaylaştıracak desktop ve web tabanlı ortak iki proje ile ilgili 3. toplantımızı 16Aralı...
Kategori: Toplantı

aç-kapa Yarışma 7Dx Demoscene Party

7Dx Demoscene Party

2002 yılından beri amatör bilgisayar kültürü ile ilgilenen insanları bir araya getirmeyi hedefleyen 7DX parti serisinin bu seneki ayağı olan 7D8 Demo ...
Kategori: Yarışma

aç-kapa Eğitim Türkiye'de İnternet Konferansı - Internet Teknolojileri Derneği -22-23 Aralık ODTÜ

Türkiye'de İnternet Konferansı - Internet Teknolojileri Derneği -22-23 Aralık ODTÜ

Etkin Katılım Çağrısı Türkiye’de Internet ile ilgili grupları biraraya getirerek İnternet’i tum boyutlarıyla tanıtmak, gelistirmek, tartı...
Kategori: Eğitim

aç-kapa Konferans Bilgi Güvenliği ve Kriptoloji Konferansı

Bilgi Güvenliği ve Kriptoloji Konferansı

Önemli Tarihler: Etkinlik Tarihi : 24-26 Aralık 2008 Son Bildiri Gönderme Tarihi : 20 Ekim 2008 Bildiri Kabul Tarihi Bildirimi :...
Kategori: Konferans

üyeler Son Kahramanlar...

stats Kimler Burada? web stats

Son 1 dakika içinde MMIstanbul' da 689 (2 kayıtlı, 687 ziyaretçi) kullanıcı varmış. Login durumda olanlar aşağıda:

coldfusion mysql ubuntu
 
sponsor adobe istanbul