关于web应用程序安全的思考(四)----一种全新的权限管控思想
2008-11-26 13:35:52 来源:WEB开发网核心提示: 4:订单审核﹕用户登录-->抓出其权限区域下的所有待审订单-->审核订单5收款﹕用户登录-->输入收款订单号或其它查询条件查出订单-->填入相应订单的收款数据-->提交确认6:发货﹕用户登录-->抓出所有已收款﹐已审核的订单-->填入相应订单的发货
4:订单审核﹕用户登录-->抓出其权限区域下的所有待审订单-->审核订单
5收款﹕用户登录-->输入收款订单号或其它查询条件查出订单-->填入相应订单的收款数据-->提交确认
6:发货﹕用户登录-->抓出所有已收款﹐已审核的订单-->填入相应订单的发货数据-->提交确认
7:用户订单报表﹕用户登录-->打印用户自己的订单数据
8:审核者订单报表﹕用户登录-->打印其权限区域下的所有订单数据
9﹕收款报表﹕用户登录-->打印收款报表
10﹕发货报表﹕用户登录-->打印所有发货报表
在系统的业务功能出来后﹐我的权限管控方案也相应的出来了﹕
一.开发者按照我的系统设计﹐相应的开发出对应这些功能的程序﹐而完全不需考虑权限部分。
在这里一个系统功能并不一定表示一支程序﹐同一支程序里你完全可以实现2种或以上的功能。
如﹕程序员在接到订单维护和管理员订单删除这两个功能后﹐它决定只用一支程序OrderMaintain.aspx程序来实现﹕
但是他怎么区分是否该显示删除按钮﹐修改按钮﹐还是区分该传 user id抓订单数据还是抓所有数据?
我没有告诉开发者任何有关权限的信息﹐因此他完全可以以这种方式来区别。
If(Request.QueryString[“kind”] ==”1”)
这是订单维护功能(所以按user id抓订单数据﹐并显示修改﹐删除按钮)
Else if(Request.QueryString[“kind”] == “2”)
这是管理员订单删除功能(抓所有数据﹐并只显示删除按钮)
而无需书写这样的代码﹕
if (user.has(“订单维护”))
抓自己的订单﹐并显示修改﹐删除按钮
更多精彩
赞助商链接