我有2个不同的角色(管理员和普通用户);基于仅输入他们可以访问的菜单的用户。但是,我不知道如何从这样的菜单中获取。他们的角色存储在数据库表中。这就是我到目前为止在设计窗口中所拥有的。
<asp:Menu ID="Menu1" runat="server" DynamicHoverStyle-BackColor="#99ccff" Orientation="Horizontal" Font-Size="X-Large" ForeColor="#003366" DynamicEnableDefaultPopOutImage="False" ScrollDownImageUrl="~/Img/1.jpg" StaticEnableDefaultPopOutImage="False" >
<DynamicHoverStyle BackColor="#99CCFF" />
<Items>
<asp:MenuItem NavigateUrl="~/Home/Welcome.aspx" Text="Home" Value="Home" ToolTip="Home" ></asp:MenuItem>
<asp:MenuItem Text="Search User" ToolTip="Search"></asp:MenuItem>
<asp:MenuItem Text="Add User" Value="Add User">
<asp:MenuItem NavigateUrl="~/Account/login.aspx" Text="Log Out" ToolTip="Log Out"></asp:MenuItem>
</Items>
</asp:Menu>
更新
if (dr.Read())
{
if (Convert.ToString(dr["RoleName"]) == "Administrator")
{
Menu1.Items.Add(new MenuItem
{
NavigateUrl = "~/Home/Welcome.aspx",
Text = "Home",
});
}
}
答案 0 :(得分:1)
visible='false'
visible=true
。根据您的要求,您可以禁用它们(在这种情况下,它们会出现在菜单中但不起作用,除非用户是管理员)。
菜单项:
<asp:MenuItem ID="menu1" visible="false" Text="Add User" Value="Add User">
Codebehind将遵循:
if (user.isAdmin)
{
menu1.Visible = true
}
答案 1 :(得分:0)
您可以使用会话。检查他是否 admin 然后显示他的菜单,如果他是普通用户,则显示他的菜单。
if(Session["type"]=="admin")
{
//
}
else if(Session["type"]=="regularUser")
{
//
}