IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası
  sohbet

 Kayıt ol  Topluluk
Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
Alt 07 Temmuz 2010, 22:47   #1
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Intraweb FrameWork (ServerController)




SERVER CONTROLLER

ServerController bir Intraweb uygulamasının temel bir çok ayarını özelliğini, bazı metodlar ve olaylar vasıtası ile bütün olarak kontrol etmeye yarar bir IW uygulamasında illa ServerController olacak diye bir kural yoktur ama çok kullanışlı bir nesne olduğundan IW sihirbazı ile oluşturulan projelerde varsayılan olarak oluşturulur fakat isterseniz projeden kaldırabilirsiniz.
Şimdi ServerConroller ın bazı olay ve özelliklerine göz atalım;

AllowSubFolders:
Normalde IW uygulamasında harici dosyalar sunucu uygulamanın kök dizininde
“FILES” adlı bir klaösorde tutulur fakat “FILES” klasörünün alt klasörlerine erişime izin verilmez, bu özellik varsayılan olarak False dur.

Diyelim ki uygulama içerisinde kullandığımız bir resmi “\FILES\Images\myImage.bmp” şeklinde bir dizin yapısında saklayalım eğer AllowSubFolders False ise web uygulaması içerisinden böyle bir referansta tarayıcı ekranında ilgili resmi göremeyiz dolayısı ile AllowSubFolders özelliğini True yapmalıyız.

AppName:
aslında isminden ne olduğu anlaşılır gibi fakat bu özelliği önemli kılan şey şudur, diyelimki oluşturduğunuz IW uygulamasını bir servis olarak kullanacaksınız işte o zaman burada kullanacağınız isim ilgili servisin ismi olacaktır.

AuthBeforeNewSession:
Eğer bu özellik True ise oturum kullanıcısı doğrulanmadan oturum oluşturulmaz ve OnNewSession olayı tetiklenmez, Eğer False ise OnNewSession olayı tetiklenir ve doğrulanama gerçekleşmezse session nesnesi destroy edilir.

AuthList: Web uygulamasına erişimi denetlemenin en kolay yolunu sağlar StringList tipinde bir özelliktir, listeye kullanıcı ekleme formatı şu şekildedir
“Kullanıcı_adı = Kullanıcı_Parolası” örneğin kocaturk=1234
Bildiğim kadarı ile sürüm 7 ile birlikte Büyük/Küçük harf duyarlı,bu şekilde eklediğiniz her kullanıcı web uygulamasına erişim hakkına sahip olur bu basit bir kontrol mekanizmasıdır tanımlanan kullanıcılar tamamen aynı haklara sahiptir. Oturum kullanıcısının adını WebApplication nesnesinin WebApplication.AuthUser özelliği ile alabilirsiniz.

Eğer AuthBeforeNewSession Özelliğini True yapar ve AuthList içerisine kullanıcılar eklerseniz sunucu uygulamayı çalıştırıp web uygulamasının başlangıç URL sini tarayıcıda açtığınız da aşağıdakine benzer bir giriş ekranı web uygulamanızın anaformundan önce



Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


sizi karşılar.AuthList e eklediğiniz kullanıcılardan birisinin kullanıcı adı ve parolasını girmenizi bekler 3 kez yanlış giriş yaptığınızda sunucu sizi “401 Unauthorized” sayfasına yönlendirir.

Bu denetim işini ServerController nesnesinin OnAuthRequest olay işleyicisi içinden de kontrol edebiliriz OnAuthRequest olay işleyicisinde aşağıdaki kodu yazarak bu işi denetleyebiliriz.

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
procedure TIWServerController.IWServerControllerBaseAuthRequest( const AUserName, APassword: String ; var AValid: Boolean); begin AValid := (AUserName = 'kocaturk') and (APassword = '1234');

end;Burada AUserName ve APassword değişkenlerini herhangi bir VT tablosundaki UserName ve Password değerleri ile de karşılaştırabiliriz.

Basit olmasına rağmen bu yol güvenli bir yol değil çünkü HTTP Authentication kullanmakta bir kez oturum açtıktan sonra sürekli erişim sağlayabilmekte, dolaysı ile bunun yerine kendi giriş denetimimizi hazırlamamız daha mantıklı olacaktır bir IW form üzerine kullanıcı adı için bir kullanıcı parolası için de başka bir IWEdit ekleyip bunu bir veri tabanından kontrolle web uygulamasına erişimi kontrol edebiliriz, ileride bununla ilgilide örnek vereceğiz.
BoundIP:
bu özellik ile web uygulamasına erişimine müsaade edilecek IP adresleri belirlenir normalde tüm IP ler izinlidir fakat bu özellik kullanıldığında artık sadece belirtilen IP adreslerinden erişim sağlanabilir.
Ne işimize yarar diye soran olabilir diyelim ki şirkette bir intranet imiz var ve biz teknik destek departmanında biz çalışıyoruz departmanda bulunan tüm PC lerden eriştiğimiz web uygulamamıza diğer departmanlardan ulaşılmasını istemiyoruz işte o zaman sadece bizim departmandaki PC lerin IP lerini BoundIP de tanımlıyoruz, diğer departmanlar web uygulamamıza erişemiyor. Fakat bu özellik NAT(Network Address Translation) kullanan ağlarda pek işe yaramıyor.

CacheDir:
Bu özellik web uygulamasının geçici olarak oluşturduğu resimler HTML dosyalar Text dosyalar vs nin nerede saklanacağını belirtmek için kullanılır normalde eğer buraya bir değer girmezseniz IW varsayılan olarak geçici dosyaları

C:\Documents and Settings\Administrator\Local Settings\Temp\0178t3cy88\user\1qu0y2n0ng21py1gz8vbq07pbveo

Gibi bir dizinde saklar ama siz bir CacheDir belirlerseniz sunucu uyglulama bu geçici dosyaları belirttiğiniz dizin de saklar ve sunucu uygulama kapatılınca da siler.
Ben hata takibi yapabilmek için web uygulamanın main formunun OnCreate olayında aşağıdaki gibi bir kod yazarak rahat erişebileceğim bir konum belirliyorum, sizde bu yolu kullanabilirsiniz

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
ServerController.IWServerController.CacheDir := WebApplication.ApplicationPath + 'MyCacheDir';

COMInitialization:
Bu özellik başlangıç olarak ciNone a ayarlıdır fakat web uygulama içerisinden COM çağrıları yapacaksınız , örneğin Bir ADO nesnesine bağlantı yapacak ve bir VT web uygulaması yapacaksanız bu özelliği, ciNormal yapmalısınız tabi bu arada COM kütüphanelerinin de ayarlanmış olduğundan emin olmalısınız. Eğer COM ile birlikte ISAPI kütüphaneleri kullanacaksanız o zaman bu özelliği ciMultiThreaded. Yapmalısınız..

ExecCmd:
bu özellik varsayılan olarak EXEC dir aşağıda varsayılan değerle tarayıcı adres çubuğundan aldığım adres bilgisini veriyorum
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]
eğer bu özelliği değiştirirseniz örneğin “CALISTIR” yaparsanız web uygulama çalıştırıldığında tarayıcının adres satırındaki bilgi aşağıdaki gibi olacaktır
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

FilesDir:
Inraweb uygulamalarında sunucu uygulama nın kök dizininde JavaScript dosyaları, CSS stil dosyaları, resim dosyaları vs gibi dosyaların tutulduğu IW 5 e kadar standart "FILES” adlı bir klasör bulunurdu ve bulunmak zorundaydı IW 5 ten sonra bu kalsörün adı özelleştirile bilir oldu eğer burada bir değişiklik yapmazsanız varsayılan olarak sunucu uygulama kök dizinin de “FILES” klaösürü kabul etmiş olursunuz özelleştirirseniz sunucu uygulama bu tür bir dosyaya çağrıda bulunduğunuzda sizin belirleyeceğiniz yolda arayacaktır.

InternalFilesDir:
Eğer web uygulamasını ISAPI veya DSO ile combine kullanacaksanız bu özelliği özelleştirip JScript vs gibi dosyaları tuttuğunuz dizinin yolunu girmelisiniz.

InternalFilesURL:
InternalFilesDir, ile fakat dizin adı yerine URL temelli bir yol belirlenmesi gerekir

TemplateDir:
Kullanılan template lerin yolunu tutar varsayılan olarak TEMPLATES. Dir özelleştirebilirsiniz.

InvalidCommandURL:

ExecCmd den farklı bir komut çalıştırma girişiminde bulunulursa sunucu uygulamada server controller ınr OnInvalidCommand olay işleyicisi tetiklenir. Ve IW varsayılan bir HTML geri döndürür ve
Error message raised by the application: Unrecognized Command: : RUN:
Şeklinde bir hata mesajı alırsınız ama isterseniz bu gibi bir durumda istemciyi başka bir URL ye yönlendirip Türkçe bir mesaj almasını sağlayabilirsiniz.
Aynı şeyi serverController nesnesinin InvalidCommand olay işleyicisinide aşağıdaki gibi bir kod ile de yapabilirsiniz.



Kod:   Kodu kopyalamak için üzerine çift tıklayın!
procedure TIWServerController.IWServerControllerBaseInvalidCommand( ARequest: TWebRequest; AResponse: TWebResponse; AMsg: String ); begin AResponse.SendRedirect( '
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
end;

NoCookieSupport:
Eğer sunucuya erişilmek istenen tarayıcıda cookie ler kapatılmışsa web uygulamasından cookie leri kullanacak bir talep te bulunursanız. Tarayıcıda cookie lerin desteklenmediğine dair özelleştirilmiş bir uyarı sayfası açmak için bir sayfanın bulunduğu dizini veya sayfa URL sini buraya girerek kullanıcıları uyarabilirsiniz.

NoJavaScriptSupport:
NoCookieSupport özelliği gibi çalışır tek fark JavaScript desteğinin olmaması durumunda tetiklenir.

ReEntryOptions:
eğer bu özelliğin alt özelliği olan AutoCreateSession true olarak ayarlanırsa tarayıcı adres satırındaki bilgiyi Oturum ID si ile birlikte alıp başka bir tarayıcı adres satırına yapıştırıp aynı oturumu başka bir pencerede açabilirsiniz oturum otomatik olarak oluşturulacaktır.aksi halde oluşturulmaz

RestrictIPs:
varsayılan olarak False dur sadece istemci taraflı kontrol edilen intranet veya extranet lerde true yapılmalıdır. Bazı Proxy sunucuları örneğin Microsoft ISA Proxy sunucusu http istekleri arasında IP leri değiştirebilir bu durumda sunucu uygulama farklı IP ler görebilir ve kullanıcının taleplerini reddedebilir. bu özelliği True yaparsanız her hangi bir IP den açılmış bir oturum oturum açanın IP si herhangi bir hatadan dolayı veya isteyerek değiştirilmişse ve farklı bir IP ile aynı oturum açılmak istendiğinde sunucu uygulama buna izin vermeyecektir.

SessionTimeOut:
varsayılan olarak 10 dakikadır bu web uygulama güvenliği içindir sunucu uygulama herhangi bir istemci ile 10 dakika haberleşme gerçekleştirmezse oturum zaman aşımına uğrayıp sonlandırılacaktır ve tarayıcıdan bu süreden sonra erişim sağlanmak istersek oturum zaman aşımı hatası görülecektir.

SessionTrackingMethod :
oturum izleme metodu varsayılan olarak tmDefault tur ve tmCookie veya tmHidden olarak ta ayarlanabilir, varsayılan olarak oturum ID si web uylumanın tarayıcı adres satırında ki URL sinin bir parçası olarak geçilir, eğer tmCookie olarak ayarlanırsa oturum bilgileri cookie ler içerisinde kullanıcı adı ve IP si ile birlikte saklanır eğer izleme metodu seçeneğini tmHidden veya tmCookie şeklinde ayarlarsanız normalde tarayıcı adres satırında gördüğünüz

[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]0w2fyhd016yyji1avzhru08vg46c

gibi bir değer yerine çalışma sayısı ve oturum ID si gizlenir ve aşağıdaki gibi bir bilgi gözlemlenir

[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

oturum izleme metodu olarak tmCookie kullanmanın şöyle bir avantajı vardır, kullanıcı uygulama dışından IW sayfası olmayan sayfalarla rahatlıkla gezinebilir, dezavantajı ise bir çok kulanıcı cookie leri kapatır bu da istenmeyen durumlara neden olabilir bunun yanında kullanıcı uygulama başına yalnız bir oturum açabilir.

StartCmd:
URL ler normalde host ve port numarasını belirtir(eğer port 80 den farklı ise) eğer istersek bu özellikle başlangıç komutunu özelleştirebiliriz örneğin [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] şeklinde bir adres girersek ilgili adreste başlatılmış bir oturuma direk olarak katılabiliriz.

TimeoutURL:
If belirli bir süre aktivite olmazsa SessionTimeOut,olay işleyicisi tetiklenir işte bu durumda kullanıcıyı oturumun zaman aşımına uğradığını belirtecek özel sayfanın URL adresini belirleyebiliriz oturum zaman aşımına uğradığında kullanıcı oturuma talep te bulunursa belirtilen özel URL ye yönlendirilecektir.

HistoryEnabled:
Normalde Inraweb Uygulamalarında tarayıcıdan geri veya ileri tuşlarına basaıldığında bir işlem görmez örneğin bazı bankaların sitelerinde veya bazı kayıt gerektiren işlemlerde bir sayfada bir işlem yapıp onu onaylayınca geri tuşuna basınca veya sayfayı yenileyince tarayıcı bize sayfayı yenilememizi isteyen bir uyarı mesajı gösterir bunun nedeni örneğin banka hesabımızdan birisine bir havele yapıyoruz ve sayfayı yenilediğimizde ikinci kez havalenin yapılmasını veya buna benzer durumların önüne geçmek için dir. eğer özelliği True yaparsanız geri ve ileri tuşları işlem yapacaktır. Fakat Geri tuşundan sağlıklı faydalanmak için için servercontroller ın OnBackbutton olay işleyicisine kod yazmak gereklidir, bu konu ile ilgili örnek kod daha sonra verecegiz.

ShowResyncWarning:
bu özellik HistoryEnabled özelliği ile birlikte çalışır eğer HistoryEnabled True olursa sayfa yenileme işleminden sonra işletim sisteminin verdiği varsayılan uyarı ile bilrlikte IW sunucu uygulaması tarafından da yeniden senkronizasyon uyarısı verilir.
Alıntıdır.

Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.

__________________
Büyümeden yaşlandım ben.Hayat; ilk gördüğüm insanların,ilk gördüğüm gibi olmadıklarını öğretti.

Kahraman Tazeoğlu
 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları reklam ver Benimmekan Mobil Sohbet
Cevapla

Etiketler
framework, intraweb, servercontroller


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Açık
Refbacks are Açık


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
Intraweb FrameWork (Giriş) Slipknot Delphi 0 07 Temmuz 2010 23:09
IntraWeb FrameWork (JavaScript Kullanımı-4) Slipknot Delphi 0 07 Temmuz 2010 23:07
IntraWeb FrameWork (JavaScript Kullanımı-3) Slipknot Delphi 0 07 Temmuz 2010 23:03
IntraWeb FrameWork (JavaScript Kullanımı-2) Slipknot Delphi 0 07 Temmuz 2010 23:00
IntraWeb FrameWork (JavaScript Kullanımı-1) Slipknot Delphi 0 07 Temmuz 2010 22:51