YII设置用户访问过滤

时间:2024-01-04 00:04:56

设置用户访问过滤

1、哪个控制器设置访问过滤,就在哪个控制器中添加如下代码

class XxxController extends Controller

{

//当前控制器是否使用过滤功能

public function filters()

{

return array(

"accessControl"//针对当前控制器的所有方法起作用

"accessControl+方法名"//只针对当前控制器的指定方法起作用

"accessControl+方法名,方法名,方法名..."//只针对当前控制器的指定方法起作用

"accessControl-方法名"//对所有方法起作用,除了这个指定的方法

"accessControl-方法名,方法名,方法名..."//对所有方法起作用,除了这个指定的方法

);

}

//设置可以被访问的方法

public function accessRules()

{

return array(

array(

"allow",//允许访问

"actions"=>array("方法名","方法名","方法名"...),

"users"=>array("@")//只有登陆用户可以访问

),

array(

"allow",//允许访问

"actions"=>array("方法名","方法名","方法名"...),

"users"=>array("admin","hello","test")//只允许指定用户来访问

),

array(

"allow",//允许访问

"actions"=>array("方法名","方法名","方法名"...),

"users"=>array("?")//只允许匿名用户来访问

),

array(

"deny",//禁止访问

"users"=>array("*")//所有用户

)

);

}

}

因为没有权限访问指定页面,所以程序会自动跳转到系统指定的登陆页面

2、设置系统默认指定的登陆页面(打开main.php全局配置文件)

'components'=>array(

'user'=>array(

// enable cookie-based authentication

'allowAutoLogin'=>true,

"loginUrl"=>__APP__."/index.php/Login/index",//指定系统的默认登陆页面

),

)