使用ASP.Net和C#
网页菜单是管理员,人力资源,IT
我在我的网站上使用登录页面。
条件
If the website is login by Admin User, Admin Menu only enable
If the website is login by HR User, HR menu only enable
....
如何为上述条件制作代码。
需要代码帮助
答案 0 :(得分:1)
我假设你在这里使用内置角色管理器和成员资格。
如果您正在使用菜单控件,我相信如果目标链接设置得当,菜单将尊重位置权限。所以,如果你添加这样的web.config(没有检查确切的标记,但希望你明白这一点):
<location path="admin/admin.aspx">
<system.web>
<authorization>
<allow roles="Admin" />
</authorization>
</system.web>
</location>
<location path="hr/hr.aspx">
<system.web>
<authorization>
<allow roles="HR" />
</authorization>
</system.web>
</location>
如果您正在构建一个简单的自定义菜单
<% if (HttpContext.Current.User.IsInRole("Admin"){ %> <li>Admin Menu</li> <% } %>
菜单项周围的应该可以解决问题
答案 1 :(得分:0)
任何使用runat =“server”的控件都有一个可绑定使用的Visible属性,
Visible='<%# IsAdmin %>'
在代码中,IsAdmin是您创建的返回bool的属性。不会呈现不可见的项目。将每个菜单的visible属性设置为IsAdmin,IsHR和IsIT,只有当它们的属性返回true时才会查看这些菜单。
顺便说一句,习惯是在绑定周围使用单引号,因为有时你想在bind语句中使用双引号。在这种情况下,双引号也可以正常工作。