none
asp.net c# session yetkilendirme RRS feed

  • Soru

  • default.aspx

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Data;
    using System.Data.SqlClient;

    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

            Response.Write(Session["kadi"]);

            if (Session["giris"] == "a")
            {
                Response.Redirect("adminpaneli.aspx");
            }
            else if (Session["giris"] == "f")
            {
                Response.Redirect("firma.aspx");
            }
            else if (Session["giris"] == "c")
            {
                Response.Redirect("calisan.aspx");
            }
        }
        protected void Button1_Click1(object sender, EventArgs e)
        {
            SqlConnection baglanti = new SqlConnection(@"Data Source=STAJER-PC-EXPER\SQLEXPRESS; Initial Catalog=MuharremCrm; Integrated Security=true");
            baglanti.Open();

            if (TextBox1.Text == "")
            {
                baglanti.Close();
            }
            else if (TextBox2.Text == "")
            {
                baglanti.Close();
            }
            else
            {
                SqlCommand komut = new SqlCommand("select * from personel where kadi='" + TextBox1.Text + "' and parola='" + TextBox2.Text + "'", baglanti);
                SqlDataReader dr = komut.ExecuteReader();
                while (dr.Read())
                {
                    int isadmin = (int)dr["isadmin"];
                    int departmanid = (int)dr["departmanid"];
                    if (isadmin == 0)
                    {
                        Session["giris"] = "p";
                        Response.Redirect("personel.aspx?id=" + departmanid);
                    }
                    else if (isadmin == 1)
                    {
                        Session["giris"] = "a";
                        Response.Redirect("adminpaneli.aspx");
                    }
                    else if (isadmin == 2)
                    {
                        Session["giris"] = "f";
                        Response.Redirect("firma.aspx");
                    }
                    else if (isadmin == 3)
                    {
                        Session["giris"] = "c";
                        Response.Redirect("calisan.aspx");
                    }

                }
            }
        }
    }

    personel.aspx

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Data;
    using System.Data.SqlClient;

    public partial class personel : System.Web.UI.Page
    {
            protected void Page_Load(object sender, EventArgs e)
        {        
                if (Session["giris"] == null)
                {
                    Response.Redirect("default.aspx");
                }
                
            SqlConnection baglanti = new SqlConnection(@"Data Source=STAJER-PC-EXPER\SQLEXPRESS; Initial Catalog=MuharremCrm; Integrated Security=true");
            SqlCommand komut = new SqlCommand();
            komut.Connection = baglanti;
            komut.CommandText = "select * from isler where departmanid=" + Request.QueryString["id"] + "";
            baglanti.Open();
            SqlDataAdapter da = new SqlDataAdapter(komut);
            DataSet ds = new DataSet();
            da.Fill(ds);
            GridView1.DataSource = ds;
            GridView1.DataBind();
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            SqlConnection baglanti = new SqlConnection("Data Source=.; Initial Catalog=MuharremCrm; Integrated Security=true");
            baglanti.Open();
            SqlCommand komut = new SqlCommand("insert into isler (istanimi,isaciklama)values(@istanimi,@isaciklama)", baglanti);
            komut.Parameters.AddWithValue("@istanimi", DropDownList1.Text);
            komut.Parameters.AddWithValue("@isaciklama", DropDownList2.Text);
            komut.ExecuteNonQuery();
            baglanti.Close();
        }
        protected void Button2_Click(object sender, EventArgs e)
        {
            Session.Abandon();
            Session.Clear();
            Response.Redirect("default.aspx");
        }
    }

    kalın belirttiğim kısımı tüm sayfaların page load kısmına yazdım web form u herhangi bir sayfada baslatınca giriş yapılmadığı için giriş(default) sayfasına yönlendiriyor ancak herhangi bir kullanıcıyla giriş yaptıgnda adres cubugundan tüm sayfalara ulaşabiliyorum boyle değil de admin olarak giriş yapınca sadece adminin görmesi gereken sayfaları araç çubuğuna yazdığımda görebilmesi lazım personele ait sayfayı adres çubuğunda yazdığımda tekrar giriş sayfasına gönlendirmesi gerekiyor ???

    yardımlarınızı bekliyorum

    4 Ağustos 2015 Salı 10:55

Yanıtlar

  • Tüm işlemi yapmışsın zaten. 

    Sadece adminin görmesi gereken sayfalara 

    if (Session["giris"] != "a")
    {
          Response.Redirect("default.aspx");
    }
    Saece personel için de != "p" diye karşılaştırırsın. 


    • Yanıt Olarak İşaretleyen tunamuharrem 5 Ağustos 2015 Çarşamba 07:46
    • Yanıt İşaretini Geri Alan tunamuharrem 6 Ağustos 2015 Perşembe 14:41
    • Yanıt Olarak İşaretleyen Serkan Canseven 11 Ağustos 2015 Salı 06:42
    4 Ağustos 2015 Salı 17:43

Tüm Yanıtlar

  • Tüm işlemi yapmışsın zaten. 

    Sadece adminin görmesi gereken sayfalara 

    if (Session["giris"] != "a")
    {
          Response.Redirect("default.aspx");
    }
    Saece personel için de != "p" diye karşılaştırırsın. 


    • Yanıt Olarak İşaretleyen tunamuharrem 5 Ağustos 2015 Çarşamba 07:46
    • Yanıt İşaretini Geri Alan tunamuharrem 6 Ağustos 2015 Perşembe 14:41
    • Yanıt Olarak İşaretleyen Serkan Canseven 11 Ağustos 2015 Salı 06:42
    4 Ağustos 2015 Salı 17:43
  • hocam sana ulaşabileceğim bi adres verir misin ? problem var yine
    • Yanıt Olarak İşaretleyen tunamuharrem 5 Ağustos 2015 Çarşamba 07:46
    • Yanıt İşaretini Geri Alan tunamuharrem 5 Ağustos 2015 Çarşamba 07:46
    5 Ağustos 2015 Çarşamba 06:18
  • Buradan sorabilirsin. Ben olmasam başka arkadaş yardımcı olabilir. 
    5 Ağustos 2015 Çarşamba 15:59
  • dediğinizi yaptım ama yine aynı problemle karşılaşıyorum örneğin personel.aspx teyken araç cubuguna farklı kullanıcının görmesi gereken sayfayı yazdığımda default.aspx e yönlenmiyor personel.aspx i yeniliyor sayfadan ayrılmıyor yani
    6 Ağustos 2015 Perşembe 06:12
  • Merhaba  ,

    Bunları nasıl nerede ve ne şekilde öğrendiniz bilmiyorum ama insanlar genelde hep bu şekilde sorunlar geliyor. 

    Benim önerim Membership kullanmanız yani oturum ile alakalı verileri herkesin yaptığı gibi şifrelenmiş cookie de saklamak.  Oturumdan kastım mesela kullanıcı yetkileri gibi. Çünkü session geçici bir şeydir ve 20 dakika sonra düşer bu durumda kullanıcı bilgileri kaybedilmiş olur. Diğer bir husus ise her sayfanın içinde bu şekilde kontrol yapmanız doğru değil bunun yerinde global.asax sayfasındaki AuthorizeRequest event ini kullanmanız daha doğrudur. 


    MSDN - Forum

    9 Ağustos 2015 Pazar 11:12