2012-03-31 28 views
5

questa è la prima volta che pubblicizzo su StackOverflow ma questo sito è fantastico. Grazie in anticipo per qualsiasi aiuto tu possa dare.ASP.NET - Come creare dinamicamente menu specifici dell'utente dal database

Possiedo un sito che consente agli utenti di accedere a pagine diverse in base alle loro autorizzazioni, in modo che ogni utente debba avere il proprio menu generato dinamicamente al momento dell'accesso. Tuttavia, le opzioni dell'utente probabilmente non cambieranno molto spesso.

Il sito dispone attualmente di una pagina principale che estrae un elenco delle loro pagine dal database e crea un menu. Lo fa ogni volta che l'utente carica una pagina.

Volevo ridurre le chiamate al database, quindi ho iniziato a inserire i dati del menu in una variabile Session. Speravo che qualcuno più esperto potesse aiutarmi a fare in modo che questo fosse il modo migliore per farlo. Penso che preferirei un modo per memorizzarlo sulla macchina dell'utente e non sul server.

ho questo è del mio Maestro di carico Pagina:

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. 
     } 

Grazie ancora!

risposta

1

Se le opzioni dell'utente non cambiano molto spesso, perché non si crea il menu solo quando la modifica è avvenuta, salvarlo nella tabella dei profili utente (in formato html) e passarlo a un controllo letterale nella pagina Master invece del menu, in questo modo non lo memorizzerai sul computer dell'utente (che non è consigliato per un sito Web).

0

Creare un file XML con l'elenco di URL. Per ciascun elemento URL, aggiungi un attributo per le autorizzazioni e imposta la visibilità di ciascun link su di esso.

Problemi correlati