Ana Objeler
Active Server Pages ‘in beraberinde gelen bazı server ve uygulama geliştirme objeleri vardır. Bu objeler developerları clienttan gelen requestleri, application durumunun yonetimi,cookilerin kullanılması, istemciye verilcek cevabın duzenlenmesi gibi işlerin detayları için kod yazma zahmetinden kurtatır. Bu ana objeler şunlardır:
1-Request and Response:request objesi HTTP istemi ile scripte gonderilen tum bilgilere erişimi sağlar. Bu bilgiler cookieleri,formları,URL querylerini ve http headerlarını kapsar.
Request objesine ait kolleksiyonlar:
1-clientcertificate 2-cookie 3-form 4-querystring 5-servervaribles
eğer request.form veya request.querystring gibi ifadeler yerine dogrudan request(variable) denilirse web server kolleksiyonları şu sırada arar
1. querystring
2. form
3. cookies
4. clientcertificate
5. servervariables
Bunun için çoğunlukla
Request.(AUTH_USER) yerine Request.ServerVariables(AUTH_USER) kullanılır.
1-ClientCertificate :HTTP requesti icinde gonderilen X.509 standartındaki sertifikalara ait bilgilerdir.Eğer web browser SSL3.0/PCT1 Protocolu kullanıyorsa yani secure bir iletişim yapıyorsa web browsera sertifika yollayabilir.Eğer bir Sertifika gonderilmemişse ClientCertificate kolleksiyonundan EMPTY degeri doner.
Syntax
Request.ClientCertificate( Key[SubField] )
Bu kolleksiyona ait Keyler ise şunlardır:
Certificate |
ASN.1 formatındaki tum sertifika içeriğinin binary stream'ini içeren bir string |
Flags |
ek sertifika verileri sağlayan flaglerden oluşur. ceCertPresent—A client certificate is present. ceUnrecognizedIssuer—Bu zincirdeki son sertifikasyon bilinmyen bir user'a ait Not: flagleri kullanbilmeniz için Asp dosyanıza client sertifikasını include etmelisiniz.VBScript kullanıyorsanız cervbs.inc dosyasını Jscript kullnıyorsanız cerjavas.inc dosyasını include etmelisiniz.Bu dosyalar InetpubASPSampSamples klasorune yuklenmiştir. |
Issuer |
sertifikayı yayınlayan hakkındaki bilgileri kapsayan bazı subfield değerlerinden oluşan bir string dir.Eğer Sub fileld olmadan bu değer belirtilmişse ClientCertificate kolleksiyonu virgul ile ayrılmış SubFieldlar gonderir.Örneğin ,C=US, O=Verisign, vb... |
SerialNumber |
Client sertifikası serial numerını ASCII tipinde ve tirelerle ayrılmış hxadecimal ifadeleri kapsayan bir stringdir.Örneğin, 04-67-F3-02. |
Subject |
Bazı subfiled değerlerini tutan stringdir.Subfield değeri sertifikanın konusu hakkındaki bilgileri kapsar.Eğer bu değer subfieldsız belirtilmişse ClientCertificate kolleksiyonu virgul ile ayrılmış SubFieldlar gonderir. Örneğin, C=US, O=Msft, vb.. |
ValidFrom |
sertifikanın hangi tarihten itibaren geçerli oldugunu bildiren tarih.Bu tarih VBScript formatındır ve uluslararası ayarlar ile değişir. Örneğin, U.S.'de, 9/26/96 11:59:59 PM. |
ValidUntil |
sertifikanın hangi tarihe kadar geçerli oldugunu bildirir. |
SubField
C |
şehir/kasaba adı |
CN |
Skullanıcı adı (sadece Subject keyi ile kullnaılır.) |
GN |
verilen ad |
I |
ilk oncekileri belirtir |
L |
Yöre |
O |
şirket yada organizasyon adı |
OU |
organizasyonel birimler |
S |
Eyalet |
T |
organizayon adı veya kişinin ünvanı |
Clientcertificate ile ilgili bazı ornek ASP kodları
|
|
|
|
|
|
2-COOKIE
Syntax
Request.Cookies(cookie)[(key)|.attribute]
Örnekler
<%
For Each strKey In Request.Cookies
Response.Write strKey & " = " & Request.Cookies(strKey) & "<BR>"
If Request.Cookies(strKey).HasKeys Then
For Each strSubKey In Request.Cookies(strKey)
Response.Write "->" & strKey & "(" & strSubKey & ") = " & _
Request.Cookies(strKey)(strSubKey) & "<BR>"
Next
End If
Next
%>
|
<%= Request.Cookies("myCookie") %>
|
3-FORM
HTTP requestinde POST ile gonderilen form verisi bilgilerini alır.
Syntax
Request.Form(element)[(index)|.Count]
Parametreler
element :form elemanının adı
index
bir parametrenin birden çok değerlerinden birine erişmenizi sağlayan opsiyonel bir değer Request.Form(parameter).Count. arasında değişen integer değerleri olabilir.
100 Kb dan buyuk veriler POST edilirken Request.form kullanılmaz bunun yerine request.binaryread kullanılır.
Örnekler
<%
For i = 1 To Request.Form("FavoriteFlavor").Count
Response.Write Request.Form("FavoriteFlavor")(i) & "<BR>"
Next
%>
|
4-QUERYSTRING
HTTP içerisindeki query string dediğimiz link yaninda verilen ve ?(soru işareti) ile ayrilarak yazilan ifadelerdir.
Basit bir örnek verecek olursak
<a href=”queryornek.asp?msg=querystring_metodu”>querystring ornegi</a>
Syntax
Request.QueryString(variable)[(index)|.Count]
Parametreler
variable
http içersinde gonderilen query string değişkeninin adı
index
değişkenin bir veya daha fazla değerini alabilmenizi sağlayan opsiyonel bir parametredir. 1 ile Request.QueryString(variable).Count arasında değişen bir integer değeri alabilir.
Request.querystring(parametre) QUERY_STRING içinde bulunan bütün değişenleri tutan bir dizidir. Bu dizinin istediğiniz kaç elemanı oldugunu bulmak için Request.QueryString(parameter) .Count kullanılır.Eğer bir değişken gönderilmemişse bu değer 0 değerini alır.
Örnek
http://localhost/asp/names.asp?Q=Fred&Q=Sally
---NAMES.ASP---
<%
For Each item In Request.QueryString("Q")
Response.Write Request.QueryString("Q")(item) & "<BR>"
Next
%>
|
Yada
<%
For i = 1 To Request.QueryString("Q").Count
Response.Write Request.QueryString("Q")(i) & "<BR>"
Next
%>
|
Yazildiğinda ekran ciktisi su şekilde olacaktir.
5-Server Variables:
istemci tarafın tarayıcısı tarafından yollanan bir http başlık bilgisi bu kolleksiyonla kullanılabilir.
Syntax
Request.ServerVariables (server değişkenleri)
Server değişkenleri aşağıda verilmiştir:
ALL_HTTP :client tarafından gonderilen bütün HTTP başlıkları
ALL_RAW :tum HTTP değerlerini alır.ALL_HTTP ile arasındaki fark ALL_HTTP servera gelmeden once HTTP_ prefix e gelir.Burada başlık adı büyük harfe çevrilir.ALL_RAW da ise datalar buraya gelmediği için client taraftan gonderildigi gibi görünürler..
APPL_MD_PATH :ISAPI.DLL uygulamalarında kullanılmak uzere metabase'in path i
APPL_PHYSICAL_PATH : IIS APPL_MD_PATH 'i fiziksel path e çevirmiş halidir.
AUTH_PASSWORD: client'ın authentication dialogunda belirttiği değerdir. Basic authentication kullanıldığı zaman geçerlidir
AUTH_TYPE :korumalı bir scripte erişmek isteyen userları değerlendirmak için serverin kullandığı authentication metodudur.
AUTH_USER :doğrulanmış ancak işlenmemiş kullanıcı adı.
CERT_COOKIE :client sertifika'e ait Unique ID
CERT_FLAGS :client sertifika sı varsa 1 değeri ni alır yoksa 0 değerini alır.
CERT_ISSUER :client sertifika yayınlayıcısına ait bilgiler(O=MS, OU=IAS, CN=user name, C=USA).
CERT_KEYSIZE :SSL bağlantısının kaç bit üzerinden yapılığını belirtir.
CERT_SECRETKEYSIZE : server certificate private key'indeki bit sayısı. 1024 gibi
CERT_SERIALNUMBER:client sertifika 'sının seri numarası
CERT_SERVER_ISSUER :server sertifika'sının yayınlayıcısı
CERT_SERVER_SUBJECT : server sertifika sının konusu
CERT_SUBJECT :client sertifika sının konusu
CONTENT_LENGTH:client taraftan gelen toplam bilginin uzunluğu
CONTENT_TYPE :client tan gelen verilerin gonderiliş şekli örneğin GEt,POST veya PUT gibi
GATEWAY_INTERFACE:serverin kullandığı CGI sartnamesi. CGI/revision formatındadır
HTTP_<HeaderName> :HeaderName de saklanan başlık değeri.Başlık oluşturulurken kullanılan _(alt çizgi) server tarafından -(tire) olarak algılanır.
HTTP_ACCEPT :Accept başlığı
HTTP_ACCEPT_LANGUAGE: contenti yani clienttan gelen veriyi gösterebilmek için kullanılan dili ifade eden string bir değer
HTTP_USER_AGENT :istemde bulunan browserı belirten bir string değerdir.
HTTP_COOKIE :istemle birlikte gelen bir cookie stringi.
HTTP_REFERER :bir yonlendirme olduğu zaman esas isteme ait url yi tutan bir string değeri
HTTPS :ON ise SSL aglantısı uzerinden istemler gerçekleşiyor dur OFF ise non-secure bir iletişim yapılıyor demektir.
HTTPS_KEYSIZE :SSL bağlantısının kaç bit üzerinden yapıldığını belirtir.
HTTPS_SECRETKEYSIZE: server certificate private key deki bit sayısı
HTTPS_SERVER_ISSUER :server sertifika'sının yayınlayıcısı
HTTPS_SERVER_SUBJECT :server sertifika sının konusu
INSTANCE_ID :IIS icin kullanılan bir ID
INSTANCE_META_PATH:istemden sorumlu ISS icin metabase path'i
LOCAL_ADDR :istemi cevaplandıracak serverin adresi.
LOGON_USER :userin hangi Windows accountunu kullandığını belirtir.
PATH_INFO :PATH_INFO ve Virtual pathi kullanarak scriptlere erişebilirsiniz.Bu bilgi bir URL ile gelirse CGI script ine gonderilmeden once server tarafından desifre edilir.
PATH_TRANSLATED : PATH_INFO nun pathi alıp virtualdan fiziksel yola cevirilme işlemlerinin yapılmış hali olan dir..
QUERY_STRING :HTTP isteminde ? den sonra gelen değişkendir.
REMOTE_ADDR :istemi yapan makinanın adresi
REMOTE_HOST :istemi yapan host makina
REMOTE_USER :istemi yapan makinaya login olmuş kullanıcının accountundaki username
REQUEST_METHOD: istem yapılırken kullanılan metod. GET, HEAD, POST gibi.
SCRIPT_NAME :calışan scriptin virtual pathi
SERVER_NAME :The serverin host name, DNS alias veya IP address
SERVER_PORT :istemin yapıldığı port numarası
SERVER_PORT_SECURE :Secure bağlantı varsa 1 yoksa 0 değerini alır
SERVER_PROTOCOL :The name and revision of the request information protocol. The format is protocol/revision.
SERVER_SOFTWARE: istemlere cevapveren ve gatewayin uzerinde bulunduğu serverin adı ve kullandıgı sunucu yazılımı.name/version formatındadır.
URL :URL adresi
Bahriye BAŞTÜRK , ASP