Asp.net Session Kullanımı

Asp.net Session Kullanımını anlatmaya başlamadan önce session nedir onu açıklayalım “Kullanıcılara ait bilgilerin kullanıcı adı, şifre vs.. sunucu üzerinde kaydedilmesini sağlayan bir yapıdır. Session zaman aşımına uğrayınca veya kullanıcı siteden çıkış yaptığında o kullanıcı için silinir, sitedeki diğer kullanıcıların bilgileri saklı tututlmaya devam eder. İçerisindeki veri sunucu tarafında tutulduğu için en güvenli yöntemlerden biridir. Herhangi bir veri kullanıcı bazlı ve gizli tutulması gerekiyor ise bu yöntem tercih edilmelidir”
sessionkullanimi
Şimdi Uygulamamızda iki sayfamız var birinci sayfaya eklediğimiz textboxlara girilen bilgiler sunucu tarafına kaydediliyor ve ikinci sayfada da bu bilgileri okuyoruz. Session ları tanımlayacağımız sayfa
sessionkullanma.aspx

<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
    protected void Button1_Click(object sender, System.EventArgs e) {
        Session["ad"] = TextBox1.Text.ToString();
        Session["soyad"] = TextBox2.Text.ToString();
        Label1.Text = "Session kaydedildi!";
    }
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>asp.net session örnekleri: www.aspnetornekleri.com</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <h2 style="color:Red">asp.net session örnekleri</h2>
        <asp:Label ID="Label1" runat="server" ForeColor="Crimson">
        </asp:Label>
        <br /><br />
        <asp:Label ID="Label2" runat="server" Text="Adınız">
        </asp:Label>
        <asp:TextBox ID="TextBox1" runat="server">
        </asp:TextBox>
        <br />
        <asp:Label ID="Label3" runat="server" Text="Soyadınız">
        </asp:Label>
        <asp:TextBox ID="TextBox2" runat="server">
        </asp:TextBox>
        <br />
        <asp:Button  ID="Button1"  runat="server" Font-Bold="true" 
            ForeColor="DodgerBlue" Text="Session Kaydet"  OnClick="Button1_Click" />
        <br /><br />
        <asp:HyperLink 
            ID="HyperLink1"   runat="server" Text="Session Kontrol" NavigateUrl="~/sessionkullanma1.aspx">
        </asp:HyperLink>            
    </div>
    </form>
</body>
</html>

Eklenene sessionları okuyacağımız sayfa
sessionkullanma1.aspx

<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
    protected void Page_Load(object sender, System.EventArgs e) {
        label1.Text = "Merhaba " + Session["ad"];
        label1.Text += "!<br />Soyadınız " + Session["soyad"];
    }
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <h2 style="color:Navy">asp.net session örnekleri</h2>
        <asp:Label  ID="label1"  runat="server"  Font-Size="Larger" ForeColor="SeaGreen" >
        </asp:Label>
        <br /><br />
        <asp:HyperLink  ID="HyperLink1"  runat="server" Text="Session Ayarla"
            NavigateUrl="~/sessionkullanma.aspx">
        </asp:HyperLink>            
        
    </div>
    </form>
</body>
</html>
  • hüseyin

    Natro’da klasik hostinglerin trust levelleri medium. Bu sebepten dolayı session kullanamazsınız (en azından ben kullanamadım). Bunun yerine ApplicationState (Session yerine Application yazarak kullanılan) kullanabilirsiniz.

  • Mesut

    hocam sunucu kaynaklı session sorunu yaşıyorum.. sunucuda problem çıkıyor ve sitedeki sessionlar uçuyor.. bu sorunu nasıl halledebiliriz ? global.asax da bu sorunun oluştuğu anı yakalama ve patlayan sessionları yeniden oluşturma gibi bir şey olur mu ??

    • BilisimOgretmeni

      nasıl bir problemden dolayı sıkıntı yaşıyorsunuz.. ?

      • Mesut

        Kullanıcı üye girişi yaptıktan sonra session oluşuyor satın alma sayfasına yönlendirilirken biraz bekleyip sunucuda oluşan bir hatadan dolayı tüm sessionlar sonlanıyor ve kullanıcı üye girişi yapmamışsınız uyarısıyla karşılaşıyor.. Bazen mevzu abartılıyor ve defalarca oluyor, sorunu Natro ya bildirdiğimizde bir şekilde çözüyorlar ama sürekli tekrarlıyor sorun.. Araştırmama göre sunucu üzerindeki herhangi bir sitede oluşabilecek bir sorundan dolayı tüm sunucudaki sessionlar sonlandırılıyormuş bizimki de o sırada güme gidiyor sanırım.. Ya sessiondan vaz geçeceğiz alternatif bir yöntem bulacağım ya da dediğim gibi bir çözüm varsa sessionun patladığı yerde yakalayıp devam ettireceğim..

        • BilisimOgretmeni

          anlıyorum bilgileri sqlserver üzerinde veya stateserver kullanarak tutmayı deneyebilrsiniz.