我需要使用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