看一看這裏我的代碼...
<asp:Menu ID="NavigationMenu" runat="server" CssClass="menu" EnableViewState="false" IncludeStyleBlock="false" Orientation="Horizontal">
<Items>
<asp:MenuItem NavigateUrl="~/Default.aspx" Text="Change My Password"/>
<asp:MenuItem NavigateUrl="~/ResetPassword.aspx" Text="Reset My Password"/>
<asp:MenuItem Value="AdminOnly" NavigateUrl="~/UpcomingExpirations.aspx" Text="Upcoming Expirations"/>
</Items>
</asp:Menu>
在後面的代碼...
protected void Page_Load(object sender, EventArgs e)
{
if (!IsUserAnAdmin(HttpContext.Current.User.Identity.Name))
{
MenuItem removeitem = NavigationMenu.GetMenuItemByValue("AdminOnly");
NavigationMenu.Items.Remove(removeitem);
}
}
相反,它設置爲可見的=假的,我只是將其刪除,如果他們'不是管理員。
編輯... 只是意識到Menu.GetMenuItemByValue()是我寫的擴展方法,所以你沒有它!這裏是。這非常有用。
/// <summary>
/// Returns the MenuItem in this Menu that has the specified Value (case sensitive)
/// </summary>
/// <param name="menu"></param>
/// <param name="ItemValue"></param>
/// <returns></returns>
public static System.Web.UI.WebControls.MenuItem GetMenuItemByValue(this System.Web.UI.WebControls.Menu menu, string ItemValue)
{
foreach (System.Web.UI.WebControls.MenuItem item in menu.Items)
{
if (item.Value == ItemValue)
{
return item;
}
}
return null;
}
用戶將產生自己的個人主頁上,各有不同的角色。手前唯一知道的就是formid。每個表單或頁面都有一個ID。用戶可以將這些表單ID分配給配置文件。我怎麼能在這種情況下繼續。 – Ruby