项目中的权限检查

来源:互联网 发布:java class泛型 编辑:程序博客网 时间:2024/06/02 14:46

我现在要做两个权限,

1.用户登录的时候,判断他是否有权限访问这个页面

2.在可以访问的页面中,点击按钮,判断其是否有此功能按钮的权限。

 

思路:

1.输入用户名密码<Login.aspx>后,我需要先去数据库中需要判断用户名密码是否存在<User.cs>,如果不存在我就不用判断权限了。

2.新建类文件<PermitCotroller.cs>功能之一是返回功能菜单,在<User.cs>中处理为XML。功能之二是返回可以访问的权限列表存到dataset中,在<User.cs>中放到Session里。

3.<User.cs>类是用于判断用户是否存在的,如果不存在,返回false,若存在,则调用<PermitCotroller.cs>中的方法将准备工作(生成功能菜单XML,处理功能列表为Session)完成。

4.完成准备工作后就可以跳转页面了,跳转页面的时候很关键。需要判断是否有权限访问该页面。

5.新建一个类文件做权限控制器<PermitExecuter.cs>

6.在权限控制器中继承System.Web.UI.Page,并重写Page_Load事件,另一个重要的操作就是,在aspx中,需要继承这个权限控制器<PermitExecuter.cs>这样的话,每个页面跳转的时候都会先执行这个页面,从而达到权限判断的效果。

7.在权限控制器中还有两个重要的方法,就是本文要处理的两个权限问题,一是页面访问权限检查,一是按钮权限检查。(这些功能均已存放到Session中,所以去Session中查找是否存在就可以了)。

8.Session中数据大致如下:

userID  funitemID  pagepath

   1              1         add.aspx

   1              2         update.aspx

9,我建了一个类文件<PermitCommand.cs>用于存用户的所有操作,用于点击某按钮的时候,传参数,判断权限。

 public static class PermitCommand
    {
        public const int AddPersion = 0;
        public const int DelPersion = 1;
    }

10.OK,所有思路完成,上各类文件代码:

 

 <Login.aspx.cs>

 

<User.cs>

 

<PermitController.cs>

 

<Main.aspx.cs> 访问的页面:

 

<PermitExecuter.cs>权限控制器:

 

流程是这样的:

在login.aspx中登录即将跳转Main.aspx,

在User.cs中对该用户进行初步判断,

在跳转Main.aspx中进行页面访问权限检查和按钮权限检查。

 

<PermitCotroller.cs>权限控制器。

<PermitExecuter.cs>提功User.cs进行准备操作。

<PermitCommand.cs>存按钮的功能ID(常量)

 

OK!

 

原创粉丝点击