2012-03-31 19 views
5

Bu, StackOverflow'ta ilk kez yayınlamam ama bu site harika. Verebileceğiniz herhangi bir yardım için şimdiden teşekkür ederiz.ASP.NET - Veritabanından dinamik olarak kullanıcıya özel bir menü oluşturma

Kullanıcıların, her kullanıcının kendi menülerinde oturum açtıklarında dinamik olarak oluşturması için izinlerine göre farklı sayfalara erişim sağlayan bir sitem var. Ancak, kullanıcı seçenekleri büyük olasılıkla sık sık değişmeyecek.

Sitede şu anda kendi sayfalarının listesini veritabanından çeken ve bir menü oluşturan bir Ana sayfası vardır. Kullanıcı bir sayfa yüklediğinde bunu yapar.

Veritabanındaki çağrıları kısmak istedim, böylece menü verilerini bir Oturum değişkenine koymaya başladım. Daha deneyimli birisinin bunu yapmanın en iyi yolu olduğundan emin olmak için bana yardımcı olabileceğini umuyordum. Bence, kullanıcının makinesinde değil, sunucuda depolamanın bir yolunu tercih ederim. Yine

User u = new User(Page.User.Identity.Name, Globals.getCnString()); 
     DataTable menu; 
     if(Session["MENU"] == null) 
     { 
      Session["MENU"] = u.getMenu(); 
     } 
     menu = (DataTable)Session["MENU"]; 

     foreach (DataRow r in menu.Rows) 
     { 
      //build menu code here. 
     } 

Teşekkür: Ben

bu benim Master Sayfa Yükleme olduğunu! kullanıcının seçenekleri çok sık değişen olmayacak

cevap

1

, neden, değişim oldu sadece menü inşa etmiyoruz (html formatında) Kullanıcının profil tablosunda kaydetmek ve bir edebi kontrolüne geçmek Ana sayfada menü yerine, bu şekilde kullanıcının makinesinde saklamayınız (bir web sitesi için önerilmez).

0

URL'ler listesiyle bir XML dosyası oluşturun. Her URL öğesi için izinler için bir özellik ekleyin ve bu bağlantıdaki her bağlantının görünürlüğünü temel alın.

İlgili konular