根据用户角色生成菜单Asp.net c#

时间:2018-05-31 18:23:12

标签: c# asp.net

我有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",
        });
    }
}

2 个答案:

答案 0 :(得分:1)

  1. 为菜单项添加ID,为其指定不同的名称。在管理项目
  2. 上设置visible='false'
  3. 在您的代码隐藏文件中,检查用户是否为管理员。如果是,请在管理员项目上设置visible=true
  4. 根据您的要求,您可以禁用它们(在这种情况下,它们会出现在菜单中但不起作用,除非用户是管理员)。

    菜单项: <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")
{
//
}