På a svarar vi..
Att använda kontroller är helt rätt tänkt. Vi använde nästan utslutande kontroller i ett projekt vi nyss avslutat. (inte bara menyer, utan loggin, små rutor som presenterade massa info för användrna, mm.) Min erfarenhet av det var att det är väldigt smidigt att jobba med dem.
Därför att man fick bra kontroll över sidan, både som programmerare o designer. Som programmerare därför att man kunde issolera funktioner, vilket gjorde att sidan ej blev rörig. Och som designer framför allt därför att det är lätt att bara flytta en kontroll till ett helt annat ställe på sidan.
På b svarar vi kanske..
Lite svårare att svara, men jag tror att det bästa sättet att lösa det på är att använda Role Based Security.
Eftersom detta egentligen arbetar med win2000 konton får du koppla dina databaskonton till en roll. Detta gör man med klasserna GenericPrincipal och GenericIdentity.
Denna sida..
http://www.c-sharpcorner.com/Tutorials/DotNetSecurityVP001.asp
förklarar en del om security. Det jag tror du ska använda står under 6. Implicit Permission. För övrigt så fanns det med en mycket bra artikel i aprils mdsn magazine (microsoft journal for developers) om säkerhet.
Hoppas att du kommit lösningen ett steg närmare.