控制每个页面的访问权限
这两天在公司,主管让我做一个小型的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) 编辑 收藏 举报