我需要使用C#禁用ASP.NET中特定用户的母版菜单控件中的菜单项 [英] I need to disable the menu item from menu control of master page for particular user in ASP.NET using C#

查看:75
本文介绍了我需要使用C#禁用ASP.NET中特定用户的母版菜单控件中的菜单项的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


我已经完成了一个网站,我需要控制其他用户查看除ADMIN以外的所有内容页面



我有什么试过:



Hi I have completed a website and I need to Control other user from viewing all the content pages except ADMIN

What I have tried:

My masterpage.aspx<br />
<pre><div class="menu"><br />
<br />
            <ul><br />
<br />
                <li class="navigation_first_item"><a id="menu1" href="Default.aspx" runat="server">Home</a></li><br />
                <li class="navigation_s"><a id="menu2" href="Add User.aspx" runat="server">Add User</a></li><br />
                <li><a id="menu3" href="Registrationpage.aspx" runat="server">Register Employee</a></li><br />
                <li><a id="menu4" href="Contact.aspx" runat="server">Contact</a></li><br />
            </ul><br />
<br />
        </div></pre>







My mastrpage.cs

 protected void Page_Load(object sender, EventArgs e)
        {
           
                            lbltime.Text = DateTime.Now.ToString("hh:mm tt");
                lblusername.Text = Session["username"].ToString();


                var menu = Page.Master.FindControl("Menu1") as Menu;
                if (Session["level"] == null)
                {
                    menu.Items.Remove(menu.FindItem("AddUser.aspx"));
                    menu.Items.Remove(menu.FindItem("Register.aspx"));
                }
                else if ((Session["Admin"].ToString().Equals("Contact.aspx")))
                {
                    menu.Items.Remove(menu.FindItem(" "));
                    menu.Items.Remove(menu.FindItem(""));
                    menu.Items.Remove(menu.FindItem(""));
                    menu.Items.Remove(menu.FindItem(""));
                }

            }

Loginpage.cs
 protected void Page_Load(object sender, EventArgs e)
        {
            var menu = Page.Master.FindControl("menu") as Menu;
            if (Session["level"] == null)
            {
                menu.Items.Remove(menu.FindItem("menu1"));
                menu.Items.Remove(menu.FindItem("menu2"));
            }
            else if (Session["level"] == "ADMIN")
            {
                menu.Items.Remove(menu.FindItem("menu4"));
                menu.Items.Remove(menu.FindItem("menu3"));
            }
            MenuItemCollection menuItems = menu.Items;
            MenuItem menuItem = new MenuItem();
            foreach (MenuItem item in menuItems)
            {
                if (item.Text == "Default.aspx")
                    menuItem = item;
            }
        }

推荐答案

if ((Session["Admin"].ToString().Equals("Contact.aspx")))
                {
                    menu.Items.RemoveAt(1);
                    menu.Items.RemoveAt(2);
                    menu.Items.RemoveAt(3);
                    menu.Items.RemoveAt(4);
                }


是的,您可以使用客户端服务器脚本。用于检查此用户是否已授权的Authentication Session变量。以下简单示例。



yes, you can used client side server scripting. the Authentication Session variable to check this User are Authorized or not. following simple example.

<% If CType(Session("User"), User).IsAdmin) Then%>
    <li id="liUsers" runat="server"><a href="Users.aspx">User List</a></li>
    <% End If%>





如果用户是管理员,那么他的显示用户列表



if user are admin then his display User List


这篇关于我需要使用C#禁用ASP.NET中特定用户的母版菜单控件中的菜单项的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆