我有一个管理面板,左侧导航部分由Li在服务器上运行。 随着时间的推移,事情已经成熟,某些项目只能由管理员查看。
我已经使用了所有代码,并希望通过创建Nav用户控件来清理它,但在检测用户角色或我可以直接在页面上访问的任何用户信息方面存在问题。 / p>
来自导航的HTML代码示例:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Security;
using System.Configuration;
namespace PolyWeb.AdminPanel
{
public partial class index : System.Web.UI.Page
{
public bool isAdminView;
protected void Page_Load(object sender, EventArgs e)
{
isAdminView = User.IsInRole("admin");
lblLogedInUser.Text += User.Identity.Name;
}
}
}
smaple codebehind:
<ul class="nav nav-tabs nav-stacked main-menu">
<li class="nav-header hidden-tablet">Main</li>
<li runat="server" id="LiAdminNavRoles" visible="<%# isAdminView %>" ><a class="ajax-link" href="/Admin/access/roles.aspx"><i class="icon-home"></i><span class="hidden-tablet red"> RolesAdmin Page</span></a></li>
</ul>
当我在用户控件(.ascx)中尝试同样的事情时,它不起作用,即使导入了所有安全命名空间,如.aspx页面。
如何从UserCOntrol获取User用户来处理导航中元素的相同显示/隐藏?