This project is read-only.

Lm.Common.Auth命名空间提供一套通用、方便的权限控制方案。

带流程图的详细说明参见我的博客文章
http://www.cnblogs.com/fantong/archive/2012/09/18/2690104.html

OperationBase类,是权限控制的核心。如果一个类ClassA继承与OperationBase,那么ClassA提供的所有方法,都将受到OperationBase的权限控制。

所谓权限控制的核心,就是判断一个用户标识和一个权限标识之间的对应关系。

OperationBase类对其子类的以下两个要求,使得OperationBase类收集到这个两个标识。
1、OperationBase类要求其子类必须向其构造函数提供一个用户标识;
2、OperationBase类要求其子类必须有一个OperationAttribute特性,并在OperationAttribute中提供权限标识。

权限控制执行过程(子类以ClassA为例):
1、向ClassA类的构造函数传递一个用户标识,以便构造一个ClassA类的实例;
2、由于ClassA继承与OperationBase,OperationBase的构造函数必然会被调用;
3、在OperationBase的构造函数中,检查ClassA是否具有OperationAttribute特性,如果,提取出其中的权限标识,如果没有,抛出异常,终止构造过程;
4、收集到用户标识和权限标识后,去数据库中比对,如果此用户,没有权限,抛出异常,终止构造过程;
5、ClassA的实例无法构造,其提供的方法,自然无法执行,以达到权限控制的目的。

Last edited Dec 17, 2012 at 2:37 AM by liuming, version 2

Comments

No comments yet.