• 06-09-2012, 15:21:48
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    selam arkadaşlar,
    basit bir uygulamam var(asp.net/visual basic). bir depo stok takip sayfası gibi. Mssql üzerinden verileri grid e yazdırıyorum. grid üzerinde de edit,delete gibi işlemleri yapıyorum. ayrıca textbox alanlarını doldurarak yeni veriyi sql e kaydedip grid de gösterebiliyorum. bu işlemleri linq to sql ile yapıyorum.
    ben bunu işyerinde bir arkadaş için yapıyorum. Grid deki verileri herkesin görmesini istiyorum. ama güncelleme ve silme, yeni ürün girme olaylarını sadece kullanıcı adı ve şifresi ile giren yetki verilmiş kişinin yapmasını istiyorum.
    bunu için bana yol gösterir misiniz? VS2010 ve VB ile kodluyorum.
    şimdiden teşekkürler.
  • 06-09-2012, 19:19:49
    #2
    Selam,

    Webci değilim ama üniversitede yaptığımız web projesinde basit olarak bu bilgiyi session larla kontrol etmiştik.

    kullanıcı login olduğunda veritabanında aynı zamanda yetkisi de çekiliyordu ve bu yetkiye göre session yazılıyordu. mesela

    Session("Yetki") = "yönetici"

    yada Session("Yetki")= "kullanıcı" gibi

    eğer sadece yöneticinin bir işi yapmasını istiyorsan o halde

    if(Session("Yetki") = "yönetici") then  'eğer yönetici ise
    
    ....... ' şu işleri yap
    
    else  ' normal kullanıcı ise
    .... 'şu işleri yap ya da yapma
    end if
    bu şekil bir mantıkla hareket edilebilir. ne kadar güvenlidir ya da daha farklı
    nasıl yollar vardır fikrim yok. ama bu şekilde çözülebilir

    kolay gelsin
  • 07-09-2012, 10:03:07
    #3
    Sayfanın yetki ayarlarını yapman gerekli.
  • 07-09-2012, 13:26:15
    #4
    Neferes adlı üyeden alıntı: mesajı görüntüle
    Sayfanın yetki ayarlarını yapman gerekli.
    hocam biraz açabilir misin bunu nasıl yapacağım?
  • 07-09-2012, 23:31:29
    #5
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Asp.net membership kullandın mı? Veya kendi üyelik sistemini mi oluşturmak istiyorsun?
    Bana sorarsan bunun için membership kullanmana gerek yok eğer dediğin kadar basit ise. Kendi membersip sistemini yaz hem öğrenmiş olursun.

    Tablo 1: Yetki [yetkiId, yetkiadi]
    Tablo 2: Kullanici [kullaniciId, yetkiId, kullaniciadi, sifre, email ...vs]
    Tablo 3: Yetkilendirme [yetkilendirmeId, yetkiId, kullaniciId, yetkidurumu]

    Bunları yarat ve login kısmında kullanıcı tablosundan giriş yapılan değerleri kontrol et ve eğer bilgiler uyumlu ise Session yarat. Diyelim ki datatable'a çektin gerekli veriyi, veya giriş doğru ise sonuc diye bir output döndürdün ve sonuc int değer ve kullanıcıId olsun.

    if(sonuc > 0)
    {
         Session["kullaniciId"] = kullaniciId;
    }
    Bu şekilde giriş yapılmasını istediğin sayfalarda bunu kontrol edebilirsin. Masterpage kullanıyorsan eğer Page_Init method'unun içine yazarsan her sayfada yazmana gerek kalmaz ve tek seferde kontrol etmiş olursun.
  • 11-09-2012, 10:53:50
    #6
    rob33n adlı üyeden alıntı: mesajı görüntüle
    Asp.net membership kullandın mı? Veya kendi üyelik sistemini mi oluşturmak istiyorsun?
    Bana sorarsan bunun için membership kullanmana gerek yok eğer dediğin kadar basit ise. Kendi membersip sistemini yaz hem öğrenmiş olursun.

    Tablo 1: Yetki [yetkiId, yetkiadi]
    Tablo 2: Kullanici [kullaniciId, yetkiId, kullaniciadi, sifre, email ...vs]
    Tablo 3: Yetkilendirme [yetkilendirmeId, yetkiId, kullaniciId, yetkidurumu]

    Bunları yarat ve login kısmında kullanıcı tablosundan giriş yapılan değerleri kontrol et ve eğer bilgiler uyumlu ise Session yarat. Diyelim ki datatable'a çektin gerekli veriyi, veya giriş doğru ise sonuc diye bir output döndürdün ve sonuc int değer ve kullanıcıId olsun.

    if(sonuc > 0)
    {
         Session["kullaniciId"] = kullaniciId;
    }
    Bu şekilde giriş yapılmasını istediğin sayfalarda bunu kontrol edebilirsin. Masterpage kullanıyorsan eğer Page_Init method'unun içine yazarsan her sayfada yazmana gerek kalmaz ve tek seferde kontrol etmiş olursun.
    bahsettiğin tabloları ve alanları oluşturdum,
    2 adet textbox ve bir de buton koydum.
    kullanıcı adı ve şifre girip buton ile login olacaklar ama nasıl bir kod yazacağım konusunda tıkandım. for each ile mi yoksa nasıl yapmam gerekiyor. ufak bir örnek verebilir misin?
  • 11-09-2012, 13:40:30
    #7
    Herhangi bir loop kullanmana gerek yok.
    Sql kodunun şu şekilde olması gerekiyor. Eğer email ile giriş yaptıracaksan:
    select * from Kullanici where email = @email and sifre = @sifre
    Bu sana eğer gönderdiğin verilere uygun bir değer varsa tek satır olarak geri döner.
    Sende bunu datatable'a atabilirsin ve if(datatable.Rows.Count > 0)'dan dersin ve içine session'ını yaratırsın.
    Database işlemleri için video'lar bulabilirsin Youtube veya torrent sitelerinden.
  • 12-09-2012, 17:48:58
    #8
    rob33n adlı üyeden alıntı: mesajı görüntüle
    Herhangi bir loop kullanmana gerek yok.
    Sql kodunun şu şekilde olması gerekiyor. Eğer email ile giriş yaptıracaksan:
    select * from Kullanici where email = @email and sifre = @sifre
    Bu sana eğer gönderdiğin verilere uygun bir değer varsa tek satır olarak geri döner.
    Sende bunu datatable'a atabilirsin ve if(datatable.Rows.Count > 0)'dan dersin ve içine session'ını yaratırsın.
    Database işlemleri için video'lar bulabilirsin Youtube veya torrent sitelerinden.
    bahsettiğin şekilde giriş yapabiliyorum. ancak session oluşturamıyorum(bilmediğim için).aşağıda yazdığım kodları veriyorum
    Protected Sub Btn_Giris_Click(sender As Object, e As EventArgs) Handles Btn_Giris.Click
            Dim db As New DataClasses1DataContext
    
            Try
    
                Dim sorgu = From k In db.Kullanici_tbls Where k.kullaniciadi = txt_kullaniciadi.Text And k.sifre = txt_sifre.Text Select k
    
            
    
                If sorgu.Count() > 0 Then
    
    'buraya session oluşturulacak
    
                Else
                    Label3.Text = "Hatalı Şifre!"
                End If
            Catch ex As Exception
                Label3.Text = "Hatalı Şifre!"
            End Try
    
        End Sub
  • 13-09-2012, 00:25:42
    #9
    UserId kısmına ne istersen yazabilirsin, sana kalmış.
    Session("userId") = "fooo"