En son web geliştirme öğreticiler
 

ASP Oturum Nesnesi


Bir Oturum nesnesi, bir kullanıcı oturumu için ilgili bilgi veren veya ayarları değiştirin depolar.


Oturum nesnesi

Bilgisayarınızda bir uygulamayla çalışırken, bunun, bazı değişiklikler yapmak açmak ve sonra kapatın. Bu kadar bir Oturum gibidir. Bilgisayar seni tanıyor. kapatırken Uygulamayı açıp zaman bilir. Ancak, internet üzerinde bir sorun vardır: HTTP adresi durumunu korumaz çünkü web sunucusu, ne yapmak sizin kim olduğunuzu ve etmez.

ASP her kullanıcı için benzersiz bir çerez oluşturarak bu sorunu çözer. çerez kullanıcının bilgisayarına gönderilir ve kullanıcıyı tanımlayan bilgileri içerir. Bu arayüz, oturum nesne olarak adlandırılır.

Oturum nesnesi, bir kullanıcı oturumu için ilgili bilgi veren veya ayarları değiştirin depolar.

tek kullanıcı hakkında bir Session nesnesi tutma bilgileri saklanan değişkenler ve bir uygulamadaki tüm sayfalara mevcuttur. oturum değişkenleri saklanan Ortak bilgileri ad, kimlik ve tercihleri ​​vardır. Sunucu her yeni kullanıcı için yeni bir Session nesnesi oluşturur ve oturum sona erdiğinde Oturum nesnesini yok eder.


Ne zaman bir Oturum Başlatma yapar?

Bir oturum sırasında başlar:

  • Yeni bir kullanıcı bir ASP dosyasını ister ve Global.asa dosyası bir Session_OnStart prosedürünü içerir
  • Bir değer, bir oturum değişkeni saklanır
  • Bir kullanıcı bir ASP dosyasını ister ve Global.asa dosyası kullanır <object> oturum kapsamı bir nesneyi başlatmak için etiketini

Ne zaman bir oturum End geliyor?

Bir kullanıcı istenen veya belirli bir süre için uygulamada bir sayfa yenilenir olmadıysa Bir oturum sona erer. Varsayılan olarak, bu 20 dakikadır.

Varsayılan daha kısa ya da daha uzun bir zaman aşımı aralığını ayarlamak istiyorsanız, kullanmak Timeout özelliğini.

Aşağıdaki örnekte 5 dakikalık bir zaman aşımı aralığını ayarlar:

<%
Session.Timeout=5
%>

Kullan Abandon hemen oturumunu bitirmek için bir yöntem:

<%
Session.Abandon
%>

Note: onlar bitmeli ZAMAN oturumları ile ana sorundur. kullanıcının son isteği nihai bir ya olmasaydı bilmiyoruz. Bu yüzden biz oturumu tutmalı ne kadar bilmiyorum "alive" . Bir boşta oturum için çok uzun bekliyorum sunucudaki kaynakları kullanır, ancak oturumu çok yakında silinirse kullanıcı sunucu tüm bilgileri sildi çünkü her şeye yeniden başlamak zorunda. Doğru zaman aşımı aralığını bulmak zor olabilir!

Tip: Yalnızca oturum değişkenleri veri KÜÇÜK miktarda depolamak!


Mağaza ve oturum değişkenleri Al

Oturum nesnesi hakkında en önemli şey bunun değişkenleri saklayabilirsiniz olmasıdır.

Aşağıdaki örnek Oturum değişken koyacaktır username için "Donald Duck" ve Oturum değişken age için "50" :

<%
Session("username")="Donald Duck"
Session("age")=50
%>

değeri bir oturum değişkeninde saklanır zaman ASP uygulamasında HERHANGİ sayfadan ulaşılabilir:

Welcome <%Response.Write(Session("username"))%>

Getiriler Yukarıdaki satır: "Welcome Donald Duck" .

Ayrıca Session nesnesinde kullanıcı tercihlerini saklamak ve daha sonra kullanıcıya geri dönmek için sayfayı seçmek için bu tercihi erişebilir.

Kullanıcı düşük ekran çözünürlüğü varsa aşağıdaki örnek sayfasının bir salt metin sürümünü belirtir:

<%If Session("screenres")="low" Then%>
  This is the text version of the page
<%Else%>
  This is the multimedia version of the page
<%End If%>

Oturum değişkenleri kaldırın

İçindekiler toplama tüm oturum değişkenlerini içerir.

Kaldır yöntemi ile bir oturum değişkeni kaldırmak mümkündür.

Aşağıdaki örnek oturum değişkeni kaldırır "sale" oturumu değişkenin değeri eğer "age" 18 daha düşüktür:

<%
If Session.Contents("age")<18 then
  Session.Contents.Remove("sale")
End If
%>

Bir oturumdaki tüm değişkenleri kaldırmak için RemoveAll yöntemi kullanın:

<%
Session.Contents.RemoveAll()
%>

İçindekiler Koleksiyonu sayesinde Döngü

İçindekiler toplama tüm oturum değişkenlerini içerir. Sen İçindekiler toplama yoluyla döngü, içinde nelerin depolandığını görmek için edebilirsiniz:

<%
Session("username")="Donald Duck"
Session("age")=50

dim i
For Each i in Session.Contents
  Response.Write(i & "<br>")
Next
%>

Sonuç:

username
age

Eğer İçerik koleksiyonunda öğelerin sayısını bilmiyorsanız, Count özelliğini kullanabilirsiniz:

<%
dim i
dim j
j=Session.Contents.Count
Response.Write("Session variables: " & j)
For i=1 to j
  Response.Write(Session.Contents(i) & "<br>")
Next
%>

Sonuç:

Session variables: 2
Donald Duck
50

StaticObjects Koleksiyonu sayesinde Döngü

Sen StaticObjects toplama yoluyla döngü, Session nesnesinde saklanan tüm nesnelerin değerlerini görmek için olabilir:

<%
dim i
For Each i in Session.StaticObjects
  Response.Write(i & "<br>")
Next
%>