• 11-12-2012, 17:26:34
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    selam arkadaslar,
    asp.net ile masterpage de bir menum var.

    şöyle:

    menuogesi1
    menuogesi2
    menuogesi3
    kullanici
    --giris
    --cikis

    login olmamış kişinin sadece giris alt menusunu, login olmus kisinin de sadece cikis altmenusunu gorebilmesini istiyorum.
    nasıl yapabilirim?
    alternatif yontemler de olabilir.
  • 11-12-2012, 18:41:39
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Session ile giriş kontrolü yap. Kullanıcı giriş yapınca atıyorum Session["asda"] = "basarili"; şeklinde eklersin, daha sonra masterpage'in preInit() eventında bu session'ı kontrol et ve eğer session boş ise girişi değilse çıkışın visible'ını true yap.
    Membership kullanıyorsanda loginstatus/logincontrol kullanabilirsin.
  • 13-12-2012, 13:28:27
    #3
    rob33n adlı üyeden alıntı: mesajı görüntüle
    Session ile giriş kontrolü yap. Kullanıcı giriş yapınca atıyorum Session["asda"] = "basarili"; şeklinde eklersin, daha sonra masterpage'in preInit() eventında bu session'ı kontrol et ve eğer session boş ise girişi değilse çıkışın visible'ını true yap.
    Membership kullanıyorsanda loginstatus/logincontrol kullanabilirsin.
    rob33n kardes,
    dediğini yaptım ancak bazı eksiklikler var. mesela masterpage de preinit yok. init,prerender var.diğer sayfalarda mesela default.aspx sayfalarında preinit var.


    yaptığımı sana şöyle söyleyeyim:
    masterpage e loginplaceholder adında bir placeholder ekledim, içine de iki adet txtbx,bir de buton(kullanıcıadı,şifre,gönder). butona session kontrolü ekledim ve bunu page_load a yazdım. böylelikle tüm sayfalardan görülebiliyor.
    login olan kişinin artık bu loginplaceholder daki txtbox ve butonları görmesini istemiyorum. orada bir de label var. giriş yapan kişiye hoşgeldin vs diye ismiyle karşılama yapacak.

    ancak ne yaparsam yapayım bir türlü gizleme olayını yapamadım(gerek txtleri gerekse de diğer label olayını)

    acaba farklı bir yere mi yazmam gerekiyor bunu?
    fikrin var mı? varsa biraz daha detaylı anlatabilir misin?
    bu arada membership kullanımıyorum, db den kendi user ve pass alanlarım var onları kontrol ediyorum.

    not: alt menuyu gizleyemeyince placeholder ile çözeyim istedim onun için loginplaceholder ekledim. alt menu gizleme yöntemi daha basitse eğer placeholder ı kaldırabilirim.
  • 13-12-2012, 15:02:11
    #4
    Ahh pardon, preInit'i override yapıcaksın.
    protected override void OnPreInit(EventArgs e)
        {
            base.OnPreInit(e);
            MasterPage master = this.Master;
            // bu kısımda normal şekilde istediğin kontrollerin visible'larını true veya false yapabilirsin.
        }
    Lifecycle event'larını incelersen istediğin şeylere daha çabuk erişirsin.
    http://msdn.microsoft.com/en-us/libr...fecycle_events
  • 13-12-2012, 16:51:49
    #5
    rob33n adlı üyeden alıntı: mesajı görüntüle
    Ahh pardon, preInit'i override yapıcaksın.
    protected override void OnPreInit(EventArgs e)
        {
            base.OnPreInit(e);
            MasterPage master = this.Master;
            // bu kısımda normal şekilde istediğin kontrollerin visible'larını true veya false yapabilirsin.
        }
    Lifecycle event'larını incelersen istediğin şeylere daha çabuk erişirsin.
    http://msdn.microsoft.com/en-us/libr...fecycle_events
    bu verdiğin kodu masterpage de mi yoksa diğer sayfalarımda mı yapacağım?
  • 13-12-2012, 23:33:20
    #6
    Masterpage'te yapıcaksın. Diğer sayfalar zaten masterpage ile bağlantılı oldukları için ilk olarak preInit çalışır.
  • 14-12-2012, 15:29:53
    #7
    rob33n adlı üyeden alıntı: mesajı görüntüle
    Masterpage'te yapıcaksın. Diğer sayfalar zaten masterpage ile bağlantılı oldukları için ilk olarak preInit çalışır.
    hocam son bir soru sorayım seni daha fazla rahatsız etmeden.
    ben vb ile kodluyorum, verdiğin kodları http://converter.telerik.com/default.aspx ile convert ettiğimde
    aşağıdaki sonucu alıyorum ancak masterpage de "OnPreInit" yok,init,load,prerender,unload,disposed,databindin g vs var

    Protected Overrides Sub OnPreInit(e As EventArgs)
        MyBase.OnPreInit(e)
        Dim master As MasterPage = Me.Master
        ' bu kısımda normal şekilde istediğin kontrollerin visible'larını true veya false yapabilirsin.
    End Sub
  • 14-12-2012, 16:50:40
    #8
    Kendine bir basepage class'ı yaratıp içerisine yazıp hook et o zaman preinit event'ını. Bunu şu şekilde yapabilirsin.
    http://odetocode.com/blogs/scott/arc...-pre_init.aspx