by Eren
22. December 2008 14:42
Asp.NET ile web uygulamaları geliştiren arkadaşlar için hayati önem arzeden bir sınıf olan System.Web.UI.Page class'ı için nacizane birşeyler karalamak istiyorum.
Geliştirdiğimiz ASP.NET formlarımızda kullandığımız IsPostback, FindControl,IsValid..vb gibi fonksiyon ve property'ler de bildiğiniz gibi bu sınıfa ait. Page sınıfımızın diğer önemli propertyleride aşağıda listelenmiştir;
• Session
• Application
• Cache
• Request
• Response
• Server
• User
• Trace
Application, Session ve Cache
Session nesnesi iki page request arasında (yani sayfanın yüklenmesi) herhangi bir tipteki datayı tutmak için kullanılır. Kullanıcı web sayfasını request ederek kendine bir oturum açılır ve bu session nesnesi sadece bu oturum süresince geçerlidir. Bu nesneleri kullıcıların kullanıcı adı, email,sayfa görünümü tercihleri ...vs. bilgilerini oturum süresince tutmak için kullanabiliriz. Session nesneleri System.Web.SessionState.HttpSessionState Class'ından oluşturulmuşlardır.
System.Web.SessionState.HttpApplicationState' ten oluşturualr Aplication nesneleri ise, web uygulaması ilk çağrıldığında oluşturulup çalıştığı sürece geçerlidir. Mesela biz bir web uygulamasında aktif kullanıcıların listesini Application nesnesine atıp bunu tüm kullanıcıalrın görmesini sağlayabiliriz.
Son olarak cache nesneside Application nesnesi gibi global bilgileri tutabileceğimiz bir nesnedir fakat bellek alanı yetersiz kalma yada bilgisayaruın yeniden başlatılma durumlarına göre tuttuğu bilgileri bırakabilmektedir.
Request
Request nesnesi System.Web.HttpRequest class'ından oluşturulup kullanılmaktadır. Request nesnesiyle sayfamız yüklenirken bazı özellikler depolanır mesela istemci tarafından gönderilen Url parametrelerini örnek olarak verebiliriz. Bunun yanında cookie değerlerine ulaşmak ya da browser bilgilerini göstermek gibi güzel amaçlar içinde kullanımı yaygındır.
Reuest nesnesinin yaygın olarak kullanılan özelliklerine kısaca bir değineyim;
| AnonymusID |
Anonim kullanıcılarının ID bilgilerini tutan bir özelliktir. Hiç kullanmadığım için şimdilik detay veremiyorum. |
| ApplicationPath ve PhisycalApplicationPath |
ApplicationPath uygulamanın çalıştığı server'daki virtual directory adresini, PhysicalApplicationPath ise fiziksel adresini verir. |
| Browser |
Çeşitli browser bilgilerini tutar.ActiveX desteği, Vbscript, coockieler, frame'ler...vs. |
| ClientCertificate |
HttpClientCertificate nesnesidir, eğer varsa istemcinin güvenlik sertifikasını tutar. |
| Cookies |
Cookie kolleksiyonunu tutar. Sayfamız için oluşturduğumuz cookie bilgilerine bu özellikle erişebiliriz. |
| FilePath ve CurrentExecutionFilePath |
İkisi arasındaki fark biraz karışık. FilePath sizinde anlayacağınız gibi ilk işlem gören sayfanın path'ini veriyor. CurrentFilePath ise, eğer Server.Transfer() metoduyla başka bir sayfaya geçilmiş ise onun path ini veriyor (Respose.Redirect() değil.). Şu durumda CurrentExecutionPath yeni sayfanın diğeri ise orijinal sayfanın path ini tutuyorki ikisini mukayese edebilelim. Biraz saçma gibi. |
| Form |
Servera gönderilen sayfanın form nesnesini ve bu form nesnesinin içindeki kontrolleri özellikleri ..vs barındırır. |
| Headers ve ServerVariables |
Sayfamızın header bilgilerine ve çeşitli faydalı değişkenlerine ulaşırız.Mesela istemcinin istekte bulunduğu browser'ın tipi, dil bilgileri, yetkilendirme bilgileri..vs. |
| IsAutenticated ve IsSecureConnection |
Kullanıcının sisteme girip girmediğini yada bağlantının SSL bağlantısı olup olmadığı bilgisini içermektedir. |
| IsLocal |
Sayfanın lokal bilgisayardanmı yoksa uzaktaki bir sunucudanmı çağırıldığını ayırt etmemiz için kullanılır. Kullanışlı bir özellik. |
| QueryString |
Request nesnesinin en çok kullandığım özelliği. URL vasıtasıyla aktarılan parametrelere buradan erişiyoruz. |
| Url ve UrlReferrer |
Url o anki sayfanın geçerli url bilgisini, UrlReferrer ise hangi url den geldiği bilgisini tutar. |
| UserAgent |
Hangi browser modelinin kullandığı bilgisini tutar. Örneğin internet Explorer için MSIE bilgisini geri döndürür. |
| UserHostAdress ve UserHostName |
Sayfayı request eden istemci IP si ve dns adresini tutar. Tabi bu eğer router tarafından NAT işlemine tabi tutuluyorsa istemcinin lokal IPsi yerine router ya da modemin dışarıya çıktığı Unique IP yi verecektir. Bunu mutlaka dikkate almak lazım. |
| UserLanguages |
Kullanıcı browser'ında ayarlı olan dil bilgisini içerir. Bu özellik sayesinde çoklu dil desteği iç eren uygulamalarımızda istemcinin dil ve lokasyon bilgisini tespit edebiliyoruz. |
devam edicem...