Use sitemap and role management control the navigation menu
Step 1: Create a sitemap file "Web.sitemap"
<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
<siteMapNode roles="*">
<siteMapNode title="Home" url="~/Default.aspx" >
<siteMapNode title="ASP.NET AJAX Controls" roles="*"/>
<siteMapNode title="WinForms Controls" roles="*" />
<siteMapNode title="WPF Controls" roles="*"/>
<siteMapNode title="Silverlight Controls" roles="*"/>
<siteMapNode title="Telerik Reporting" roles="User,Administrator"/>
<siteMapNode title="Telerik OpenAccess ORM" roles="User,Administrator"/>
<siteMapNode title="Sitefinity ASP.NET CMS" roles="Administrator"/>
<siteMapNode title="WebUI Test Studio" roles="Administrator"/>
</siteMapNode>
<siteMapNode title="Videos" url="~/Tags.aspx" >
<siteMapNode title="On-site Training" />
<siteMapNode title="Consulting Express" />
<siteMapNode title="Open Classes Training" />
<siteMapNode title="Online Training" />
<siteMapNode title="Project Consulting" />
<siteMapNode title="Telerik Webinars" />
</siteMapNode>
<siteMapNode title="Members" url="~/MemberList.aspx" />
<siteMapNode title="My Page" url="~/MyPage.aspx" />
<siteMapNode title="My Recent Views" url="~/RecentViews.aspx" />
<siteMapNode title="Upload a Video" url="~/Upload.aspx" />
<siteMapNode title="Administer Users" url="~/AdministerUsers.aspx" />
</siteMapNode>
</siteMap>
Step 2: Add/Modify/Check Membership, Role Management database connection string
<connectionStrings>
<add name="MyApplicationServices"
connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnetdb.mdf;User Instance=true"
providerName="System.Data.SqlClient" />
</connectionStrings>
<system.web>
<compilation debug="true" targetFramework="4.0" />
<siteMap enabled="true">
<providers>
<clear/>
<add siteMapFile="Web.sitemap"
name="AspNetXmlSiteMapProvider"
type="System.Web.XmlSiteMapProvider"
securityTrimmingEnabled="true"/>
</providers>
</siteMap>
<authentication mode="Forms">
<forms loginUrl="~/Account/Login.aspx" timeout="2880" />
</authentication>
<membership>
<providers>
<clear/>
<add name="AspNetSqlMembershipProvider"
type="System.Web.Security.SqlMembershipProvider"
connectionStringName="MyApplicationServices"
enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false"
maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
applicationName="/" />
</providers>
</membership>
<roleManager enabled="true">
<providers>
<clear />
<add
connectionStringName="MyApplicationServices"
applicationName="/"
name="AspNetSqlRoleProvider"
type="System.Web.Security.SqlRoleProvider" />
<add applicationName="/" name="AspNetWindowsTokenRoleProvider"
type="System.Web.Security.WindowsTokenRoleProvider" />
</providers>
</roleManager>
</system.web>
Step 4. Add page access rules under <configuration> node
<location path="MyPage.aspx">
<system.web> <authorization> <deny users="?" /> </authorization> </system.web> </location> <location path="MyPage.aspx">
<system.web> <authorization> <deny users="?" /> </authorization> </system.web> </location> <location path="MemberList.aspx">
<system.web> <authorization> <allow roles="Administrator"/> <deny users="*"/> </authorization> </system.web> </location>
Step 5. Add Menu to page
<asp:sitemapdatasource runat="server" id="siteMapDataSource" showstartingnode="false" sitemapprovider="AspNetXmlSiteMapProvider"> <asp:menu id="Menu1" runat="server" datasourceid="siteMapDataSource" orientation="Horizontal">Step