yii 实现 用户验证和rbdc
2012-03-31 20:00
316 查看
添加文件 controllers/AdminController.php 加入动作index
添加 components/AdminIdentity.php 文件
添加 data/auth.php 文件
修改 config/main.php 在 components 下 添加
'user' => array(
'loginUrl' => array('admin/index'), //设置未登录跳转的页面
),
最后在view页面添加一个表单即可
public function actionIndex() { $username = @$_POST['username']; $password = @$_POST['password']; if (@$username && @$password) { $identity = new AdminIdentity($username, $password); if ($identity->authenticate()){ Yii::app()->user->login($identity,3600*24*7);} else echo $identity->errorMessage; } $this->render('login'); }
//添加规则
public function accessRules()
{ return array( array('allow', 'actions'=>array('admin','comment'), 'roles'=>array('administrator'), ), array('deny', 'actions'=>array('comment'), 'users'=>array('*'), ), ); }
添加 components/AdminIdentity.php 文件
class AdminIdentity extends CUserIdentity { private $_id; public function authenticate() { $record = Admin::model()->findByAttributes(array('username' => $this->username)); if ($record === null) $this->errorCode = self::ERROR_USERNAME_INVALID; else if ($record->password !== $this->password) $this->errorCode = self::ERROR_PASSWORD_INVALID; else { $this->_id = $record->id; $this->setState('title', $record->title); $this->errorCode = self::ERROR_NONE; $auth = Yii::app()->authManager; if (!$auth->isAssigned($record->role, $this->_id)) { { if ($auth->assign($record->role, $this->_id)) {//给用户分配角色 Yii::app()->authManager->save(); //保存到auth.php } } } } return !$this->errorCode; } public function getId() { return $this->_id; } }
添加 data/auth.php 文件
<?php return array ( 'anonymous' => array ( 'type' => 2, 'description' => 'Can only read a post', 'bizRule' => '', 'data' => '', ), 'authenticated' => array ( 'type' => 2, 'description' => 'Can post a comment', 'bizRule' => '', 'data' => '', ), 'administrator' => array ( 'type' => 2, 'description' => 'Can read a post and post a comment', 'bizRule' => '', 'data' => '', 'children' => array ( 0 => 'anonymous', 1 => 'authenticated', ), 'assignments' => array ( 1 => array ( 'bizRule' => NULL, 'data' => NULL, ), ), ), ); ?>
修改 config/main.php 在 components 下 添加
'authManager' => array( 'defaultRoles' => array('anonymous'), //设置默认角色 ),
'user' => array(
'loginUrl' => array('admin/index'), //设置未登录跳转的页面
),
最后在view页面添加一个表单即可
<form action="" method="post"> <input type="text" name="username" /> <input type="text" name="password" /> <input type="submit" value="login" /> </form>
相关文章推荐
- Yii开发系列2:实现用户注册验证登录
- ASP.NET Core中实现用户登录验证的最低配置示例代码
- ASP.NET实现用户注册和验证功能(第4节)
- Ajax实现客户端验证用户注册
- ASP.NET jQuery 实例12 通过使用jQuery validation插件简单实现用户注册页面验证功能
- 利用NTLM 验证整合Squid及Samba3实现Win2k3域用户认证
- asp.net实现无刷新用户验证的简单例子
- Spring从菜鸟到高手(四)(上)使用JdbcTemplate类实现用户登陆验证、批量更新
- Apache服务器实现用户验证
- [转] 分别用(Windows/Form/Soap/WebService)实现用户身份验证
- 通过QQ实现用户资源积累,通过一些验证的盈利方法 对用户资源合理利用
- 用简易Ajax框架实现"无刷新用户验证"【原创】
- yii 用户登录验证(cwebuser) yii 用户登录 (记)
- ASP.NET MVC3 实现用户登录验证
- 使用HttpContext的User属性来实现用户验证
- JavaWeb学习记录(六)——用户登录功能之Session与验证码验证功能的实现
- Yii 用户登录验证
- 拦截器实现对用户是否登录及登陆超时的验证
- 怎么实现用户匿名访问web,但数据库要用Windows集成验证方式(数据库和web服务器分别在两台机器上)
- Ajax实现异步验证用户是否存在