站点导航和链接根据权限隐藏/取消隐藏

时间:2012-02-05 08:10:14

标签: asp.net

我正在使用asp.net(C#)开发一个应用程序,这次设计概念是两个基于框架的母版页,左侧将有导航,右侧框架将有内容页面。

导航将具有如下菜单。

  1. 系统参数
    ........客户设置
    ........货币设置
    ........用户管理设置
    ........组定义

  2. 交易
     .....交易1
     .....交易2
     .....交易3

  3. 在组管理中我想在表单上分配访问权限并将用户放入组中。现在我的问题是如何根据登录用户的组权限隐藏/取消隐藏导航链接。

    我想提出类似以下的应用程序设计

    http://weblogs.asp.net/scottgu/archive/2006/01/17/435765.aspx

    请指导如何处理动态菜单并构建此类应用程序并限制用户无法访问他/她没有权限的页面... Internet上的大多数解决方案都基于web.config,其中定义了角色但我希望将我的角色与组权限一起保留在数据库中。所以需要基于数据库的解决方案。

2 个答案:

答案 0 :(得分:0)

首先,一旦用户登录,您可以将他/她的授权级别存储在会话变量中。例如。 Session("CurrentUserLevel")="admin"

然后,

隐藏导航项,可以编写代码来执行:

if session("CurrentUserLevel") <> "admin" then
customerSetup.visible = false ' where customerSetup is your asp.net element
end if

为了防止访问页面,请在每个页面的顶部放置代码:

if Session("CurrentUserLevel") <> "admin" Then Response.Redirect("hope.aspx")

注意:这是一个非常简单的静态/硬编码解决方案。通常,您应该使用更高级的技术来完成此类任务。

答案 1 :(得分:0)

您将通过母版页引用控件,然后将其可见性更改为当前用户 像这样

protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["id"]!=null)
        {
            liberarianDrop.SelectedValue = (Session["id"].ToString());
          ((LinkButton)this.Master.FindControl("LoginBtn")).Visible = false;}

    }