ASP ANA OBJELER

En Büyük İslami Forum Sitesi/ASP ANA OBJELER => Dizinin 2 bölümünde : ana objeler, request, response, cookie, form, querystring, server variables konularından bahsediliyor. Ana Objeler Active

Gönderen Konu: ASP ANA OBJELER  (Okunma sayısı 2257 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimiçi administrator

  • Administrator
  • General
  • *****
  • İleti: 24515
  • Karma: +3/-1
    • Profili Görüntüle
    • Toplist Ekle Site Ekle
ASP ANA OBJELER
« : Nisan 30, 2009, 03:55:48 ÖS »
Dizinin 2 bölümünde : ana objeler, request, response, cookie, form, querystring, server variables konularından bahsediliyor.
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 \Inetpub\ASPSamp\Samples 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ı
<%
  For Each strKey in Request.ClientCertificate
    Response.Write strkey & " = " & Request.ClientCertificate(strkey) & "<BR>")
  Next
%>
<%
  If Len(Request.ClientCertificate("Subject")) = 0
    Response.Write("No client certificate was presented")
  End if
%>
<%= Request.ClientCertificate("IssuerCN") %>
<%
  If (Request.ClientCertificate("Subject")="Msft")
    Response.Write("Good Choice!")
  End if
%>
<%= Request.ClientCertificate("ValidUntil") %>
<!--#include file="cervbs.inc" -->
<%
  If Request.ClientCertificate("Flags") and ceUnrecognizedIssuer then
    Response.Write "Unrecognized issuer"
  End If
%>
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[/url]
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

BilX.Net