控制每个页面的访问权限

    这两天在公司,主管让我做一个小型的CRM系统,花了将近一周

时间,整个系统是做出来了,不过没什么美感可言-_-!不过这只是

测试我能力的一个项目,对界面没啥要求了,呵呵... 系统中我其

他没什么可以说的,就是关于权限设置这块我得提一下,是为了可

以控制每个页面的访问权限,整个设计大概分以下几点:
1)数据库的设计

ID 自动编号
PageIndex (页面指向的地址)
PageText (页面的说明文本)
IsViewOk (是否允许访问,0/1,1是可访问)
UserGroup (用户组ID)

然后把整个系统所有的页面加入到数据库中,每个用户组都有他的

记录
也就是,假设,用户组有0,1,2三组,页面有Default.aspx,ViewP

age.aspx,那么数据库中就有
---------------------------------------------------
ID     PageIndex    PageText    IsViewOk  UserGroup
---------------------------------------------------
1    Default.aspx     首页         1         0
2    ViewPage.aspx   访问页        0         0
3
4
5
6  ................................................
---------------------------------------------------
2)具体实现

设置Session["UserGroup"]
在每次访问一个页面时候获取页面的名称
访问http://localhost:76832/ViewPage.aspx,获取

“ViewPage.aspx”

string url = Request.CurrentExecutionFilePath.ToString();
url = url.Substring(url.LastIndexOf("/")+1);

然后根据 url 和 Session["UserGroup"]从数据库中的PageIndex,

UserGroup 字段查找 IsViewOK字段,并将其值转换为Bool类型返回

,然后确定当前访问的页面是否是允许访问的
在Page_Load中的代码
        if (!IsPostBack)
        {
            string url =

Request.CurrentExecutionFilePath.ToString();
            url = url.Substring(url.LastIndexOf("/") + 1);
            if (ubll.IsValidpage(url,

Session["UserGroup"].ToString()))
            {
                //实际操作
            }
            else
            {
                Response.Write("<script>javascript:alert('

您没有访问该页的权限!');window.location='default.aspx';</s

cript>");
            }
        }

具体实现大家可以自己去试试

posted on 2007-09-07 11:26  jerreychen  阅读(3332)  评论(0编辑  收藏  举报

导航