根据用户启用特定页面

时间:2011-04-01 17:25:41

标签: c# asp.net visual-studio-2008

使用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
....

如何为上述条件制作代码。

需要代码帮助

2 个答案:

答案 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语句中使用双引号。在这种情况下,双引号也可以正常工作。