Member 12605293 Ответов: 1

Как скрыть меню на главной странице на основе имени пользователя в ASP.NET


Привет,
Как скрыть некоторые из меню на главной странице на основе имени пользователя в asp.net
<pre><div id="menu2" class="menu" >
    <ul style="background-color:green;color:black;font-family:Shruti"">
        <li id="link1" runat="server"><a href="Home.aspx">Home</a></li>
        <li id="link2" runat="server" class="navigation_s"><a href="Registration.aspx">Add User</a></li>
        <li id="link3" runat="server"><a href="Report.aspx">EmpReport</a></li>
        <li id="link4" runat="server"><a href="Report2.aspx">Report</a></li>
        <li id="link5" runat="server"><a href="Contact.aspx">Contact</a></li>
        
        
    </ul>
    <div class ="left"></div>
    <div class="right"></div>   
    </div>


Что я уже пробовал:

<pre><div id="menu2" class="menu" >
    <ul style="background-color:green;color:black;font-family:Shruti"">
        <li id="link1" runat="server"><a href="Home.aspx">Home</a></li>
        <li id="link2" runat="server" class="navigation_s"><a href="Registration.aspx">Add User</a></li>
        <li id="link3" runat="server"><a href="Report.aspx">EmpReport</a></li>
        <li id="link4" runat="server"><a href="Report2.aspx">Report</a></li>
        <li id="link5" runat="server"><a href="Contact.aspx">Contact</a></li>
        
        
    </ul>
    <div class ="left"></div>
    <div class="right"></div>   
    </div>

1 Ответов

Рейтинг:
6

Atlapure Ambrish

Ниже приведен пример, пожалуйста, измените роль на имя пользователя в вашем коде, а также вы разорвете цикл, как только пункт меню будет найден.

protected void Page_Load(object sender, EventArgs e)
    {
        if (!Roles.IsUserInRole("Admin"))
        {
            MenuItemCollection menuItems = mTopMenu.Items;
            MenuItem adminItem = new MenuItem();
            foreach (MenuItem menuItem in menuItems)
            {
                if (menuItem.Text == "Roles")
                    adminItem = menuItem;
            }
            menuItems.Remove(adminItem);
        }
    }


Member 12605293

Привет Атлапуре,
у меня нет значения администратора, вместо этого я передаю имя человека

F-ES Sitecore

Это плохая идея, вы должны основывать вещи на ролях, а не на пользователях, но если вы должны использовать имя пользователя в "если" вместо роли.

Atlapure Ambrish

нет проблем, используйте имя пользователя вместо роли в операторе if, как я уже упоминал в своем решении.