我现在想实现一个功能:不同的用户登录以后显示的导航链接不一样,比如A用户登录看到的页面导航和B看的就不一样!我的页面导航是写在master页中的,用户登录模块是写在一个ascx页中的,我本来是想在用户登录后也就是在master页中根据用户登录的身份来动态显示要加载的导航菜单,这样的思路我试过了,出不来!问问大家应该怎么弄了?
master中ASPX页代码(不同用户的大部分导航是一样的,所以我就写死了,就有部分导航是有些用户专有的,比如下面的第三个超链接就是某个用户登录后才显示的)
<div id="nav">
<div class="nav_item"><a href="/Default.aspx">首页</a></div>
<div class="nav_item"><a href="/plat/platDesc.aspx">使用说明</a></div>
<div class="nav_item" id="post" runat="server" visible="false"><a href="#">送检</a></div>
<div class="nav_item"><a href="/news/newslist.aspx">业界动态</a></div>
<div class="nav_item"><a href="/slice/sliceList.aspx">切片库</a></div>
<div class="nav_item"><a href="/expert/expertDesc.aspx">专家介绍</a></div>
<div class="nav_item"><a href="/contact/contact.aspx">联系我们</a></div>
</div>
master后台代码:
if (Session["UserInfo"] != null)
{
User user = (User)Session["UserInfo"];
switch (user.Type)
{
case 2:
post.Visible = true;
break;
default:
break;
}
}
在用户登录控件中,也就是ascx中,登录成功后我给session["UserInfo"]赋值
你的思路没错,是应该在master上对用户身份来进行加载。不过最好贴出代码来看下。
导航栏,是否考虑也做成一个控件,在用户登录的时候根据ID动态加载要显示的菜单.
把用户所具备的操作权限存入数据库中,用户登陆成功的时候,根据自己的权限生成导航菜单。