<%@ Register TagPrefix="ec" Namespace="ASPNETExpert.WebControls" Assembly="ASPNETExpert.WebControls" %>
<%@ Register TagPrefix="ecd" TagName="Footer" Src="../../Controls/Footer.ascx"%>
<%@ Register TagPrefix="ecd" TagName="Header" Src="../../Controls/Header.ascx"%>
<%@ Register TagPrefix="ecd" Namespace="ASPNETExpert.WebControls.DemoControls" Assembly="ASPNETExpert.WebControls.DemoControls" %>
<%@ Page language="c#" Codebehind="default.aspx.cs" AutoEventWireup="True" Inherits="ASPNETExpert.WebControls.Demo.Menu.Programming.AccessControl._default" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>ASP.NET Menu : ExpertMenu Demo : Add / Move / Remove / Disable items</title>
<link href="../../style.css" type="text/css" rel="stylesheet">
</HEAD>
<body xmlns:ec="urn:http://aspnetexpert.com/ExpertControls.xsd">
<form id="Form1" method="post" runat="server">
<ecd:Header runat="server" ID="Header1"></ecd:Header>
<ec:ExpertMenu runat="server" id="ExpertMenu1" Skin="WindowsXPGray" PostBackOnClick="true" EnableViewState="true">
<TopGroup Look-Orientation="Horizontal">
<Items>
<ec:MenuItem Text="Home" />
<ec:MenuItem Text="Services" PostBackOnClick="False">
<SubMenu>
<Items>
<ec:MenuItem Text="Software products" />
<ec:MenuItem Text="Business consulting" />
<ec:MenuItem Text="Financing" AllowRoles="Manager,Sales,Employee" />
<ec:MenuItem Text="Infrastructure services" />
</Items>
</SubMenu>
</ec:MenuItem>
<ec:MenuItem Text="Clients" PostBackOnClick="False">
<SubMenu>
<Items>
<ec:MenuItem Text="View clients list" AllowRoles="Manager,Sales" />
<ec:MenuItem Text="View client's account" AllowRoles="Manager,Sales" />
<ec:MenuItem Text="View client's report" AllowRoles="Manager" />
<ec:MenuItem Text="Submit client's report" AllowRoles="Manager" />
</Items>
</SubMenu>
</ec:MenuItem>
<ec:MenuItem Text="My account" AllowRoles="Manager,Sales,Employee" />
</Items>
</TopGroup>
</ec:ExpertMenu>
<br>
<ec:ExpertPath runat="server" ExpertMenuID="ExpertMenu1" ID="ExpertPath1">
<ItemLook>
<InitLook ForeColor="Gray" Font-Name="Verdana,Arial,Helvetica,sans-serif" Font-Size="10px" Font-Bold="True" Padding-All="2px" Cursor="Pointer" />
<HoveredLook ForeColor="#5B73A6" Font-Name="Verdana,Arial,Helvetica,sans-serif" Font-Size="10px" Font-Bold="True" Font-Decoration="Underline" Cursor="Pointer" />
<DisabledLook ForeColor="Silver" Cursor="Default" />
</ItemLook>
<SeparatorTextLook ForeColor="Gray" Font-Name="Verdana,Arial,Helvetica,sans-serif" Font-Size="10px" Font-Bold="True" Padding-Left="4px" Padding-Right="4px" />
</ec:ExpertPath>
<br>
<asp:RadioButtonList Runat="server" AutoPostBack="True" ID="RolesList" RepeatDirection="Horizontal" CssClass="exampledesc" onselectedindexchanged="RolesList_SelectedIndexChanged"></asp:RadioButtonList>
<asp:CheckBox Runat="server" ID="HideRoleDisabledItems" Text="HideRoleDisabledItems" AutoPostBack="True"
CssClass="exampledesc" oncheckedchanged="HideRoleDisabledItems_CheckedChanged"></asp:CheckBox>
<br>
<ecd:DescriptionView runat="server" IconUrl="../../images/kv.gif" ID="Descriptionview1">
<ecd:Description runat="server" ID="Description1"><b>ExpertMenu</b> can enable / disable menu items
based on allowed security roles specified for an item.</ecd:Description>
<ecd:Description runat="server" ID="Description2">To protect a menu item from unauthorized access just
define an allowed roles list with <B>AllowRoles</B> property. Only authorized persons will have access
to that item.</ecd:Description>
<ecd:Description runat="server" ID="Description3"><b>ExpertMenu</b> checks roles with standard ASP.NET
<b>System.Security.Principal.IPrincipal.IsInRole()</b> call and takes IPrincipal from
<b>Context.User</b> property.</ecd:Description>
<ecd:Description runat="server" ID="Description4">You can totally hide the items that are not allowed
for the current user's security role with <B>HideRoleDisabledItems</B> property.</ecd:Description>
<ecd:Description runat="server" ID="Description5">Note that <B>ExpertPath</B> control enables / disables
(hides) items the same way as its host menu.</ecd:Description>
</ecd:DescriptionView>
<ec:CodeViewTab id="CodeViewTab1" runat="server" Class="Tab" TabClass="TabContent" ItemClass="TabItem"
ItemOverClass="TabItemOver" ItemSelectedClass="TabItemSelected" ImagesBaseUrl="../../images/tab/"
SeparatorImage="separator.gif">
<ec:TabItem runat="server" Text="aspx">
<pre class="aspcode">
<ecd:SyntaxHighlight runat="server" ContentType="ASPX" OutputFile="default.aspx" />
</pre>
</ec:TabItem>
<ec:TabItem runat="server" Text="C#">
<pre class="aspcode">
<ecd:SyntaxHighlight runat="server" ContentType="C#" OutputFile="default.aspx.cs" />
</pre>
</ec:TabItem>
<ec:TabItem runat="server" Text="VB">
<pre class="aspcode">
<ecd:SyntaxHighlight runat="server" ContentType="VB" OutputFile="default_vb.aspx.vb" />
</pre>
</ec:TabItem>
</ec:CodeViewTab>
<ecd:Footer runat="server" ID="Footer1"></ecd:Footer>
</form>
</body>
</HTML>