ThinkPHP:简单的权限认证类gMAR[新增完整例子-订单管理后台]
来源:互联网 发布:linux shell 写入文件 编辑:程序博客网 时间:2024/05/29 03:46
gMAR是Group, Module, Action and Request_method的意思,gMAR是基于它们的组合规则进行对比验证。
特点:简单、支持规则、支持REQUEST_METHOD验证,兼容TP1.5、TP2.0,自动识别GROUP
缺点:灵活性还不够,只适合用些小系统
工作原理:
通过(GROUP_NAME)、MODULE_NAME、ACTION_NAME和$_SERVER['REQUEST_METHOD']的简单结合和预定义权限规则进行比较。
结合格式:
view plaincopy to clipboardprint?
(GROUP_NAME@)MODULE_NAME/ACTION_NAME_SERVER['REQUEST_METHOD']。
(GROUP_NAME@)MODULE_NAME/ACTION_NAME_SERVER['REQUEST_METHOD']。
兼容格式:
view plaincopy to clipboardprint?
'*' => '*/*:*' //所有权限
':GET' => '*/*:GET' //所有模块所有方法的GET请求
'*:GET' //同上
'*/:GET' //同上
'*/action' => '*/action:*' //所有模块中action方法全部请求(GET & POST)
'/action' //同上
'action:GET' => '*/action:GET' //所有模块中action方法的GET请求
'Index/' => 'Index/*:*' //Index模块中所有方法的全部请求方式
'Index/:*' //同上
'Index/*:*' //同上
'Index/:GET' => 'Index/*:GET' //Index模块中所有方法的GET请求
'Index/action'=> 'Index/action:*'//Index模块中action方法的全部请求方式
'Index/action:GET' //Index模块中action方法中GET请求方式
'*' => '*/*:*' //所有权限
':GET' => '*/*:GET' //所有模块所有方法的GET请求
'*:GET' //同上
'*/:GET' //同上
'*/action' => '*/action:*' //所有模块中action方法全部请求(GET & POST)
'/action' //同上
'action:GET' => '*/action:GET' //所有模块中action方法的GET请求
'Index/' => 'Index/*:*' //Index模块中所有方法的全部请求方式
'Index/:*' //同上
'Index/*:*' //同上
'Index/:GET' => 'Index/*:GET' //Index模块中所有方法的GET请求
'Index/action'=> 'Index/action:*'//Index模块中action方法的全部请求方式
'Index/action:GET' //Index模块中action方法中GET请求方式
使用方法:
view plaincopy to clipboardprint?
import('@.ORG.gMAR');
gMAR::AccessCheck();
import('@.ORG.gMAR');
gMAR::AccessCheck();
Example:
view plaincopy to clipboardprint?
function _initialize() {
// 用户权限检查
if (C('USER_AUTH_ON') && !in_array(MODULE_NAME, explode(',', C('NOT_AUTH_MODULE')))) {
//检测是否登录
if (!Session::get(C('USER_AUTH_KEY'))) U('Public/login', null, true);
//gMAR权限验证
import ( '@.ORG.gMAR' );
if(!gMAR::AccessCheck()){
$this->error('权限不足,请与管理员联系');
}
}
}
function _initialize() {
// 用户权限检查
if (C('USER_AUTH_ON') && !in_array(MODULE_NAME, explode(',', C('NOT_AUTH_MODULE')))) {
//检测是否登录
if (!Session::get(C('USER_AUTH_KEY'))) U('Public/login', null, true);
//gMAR权限验证
import ( '@.ORG.gMAR' );
if(!gMAR::AccessCheck()){
$this->error('权限不足,请与管理员联系');
}
}
}
http://files.cnblogs.com/cevin/gMAR.rar
http://files.cnblogs.com/cevin/ordersystem.zip
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yafeikf/archive/2009/12/07/4958100.aspx
- ThinkPHP:简单的权限认证类gMAR[新增完整例子-订单管理后台]
- thinkphp的 Auth权限认证
- 基于ThinkPHP框架的简单的后台管理系统
- Thinkphp 3.2 下的auth权限认证
- ThinkPHP之比RBAC更好用的权限管理 auth认证
- Thinkphp的RBAC权限管理
- thinkphp Auth 权限认证
- (thinkPHP) 比RBAC更好的权限认证方式(Auth类认证)
- IcePHP框架 新增了 管理后台四层权限功能
- 新增销售订单的计算类
- Thinkphp完整的分页类
- SpringMVC+Shiro权限管理简单例子
- 权限的认证类
- 后台订单管理异步加载订单项的操作
- ThinkPHP-4-权限管理
- thinkphp关于简单的权限判定
- 使用ThinkPHP的RBAC类进行后台RBAC权限的验证
- VC++ 完整的例子(电话本管理)
- 自动纹理管理
- 电脑常见问题及解决方案
- DSkinLite
- libevent源码深度剖析十三——libevent信号处理注意点
- 谭浩强 《C程序设计》 第三版 第三章习题答案 (修正)
- ThinkPHP:简单的权限认证类gMAR[新增完整例子-订单管理后台]
- 继续优化,使用AC算法,时间控制在1秒内
- POJ 1298
- ibm aix rpc.cmsd remote exploit
- asp.net viewstat Tampering Vulnerabilities
- 如何搭建三层架构?(1)
- 如何搭建三层架构?(2)
- POJ 2183
- Windows SMB NTLM Authentication Weak Nonce Vulnerability