1

我在尝试使用框架实现CAS身份验证时遇到了一些麻烦。Yii下载了客户端类,当我不使用任何框架时一切正常,但是当我尝试与Yii验证集成时似乎根本不起作用。

任何人都可以描述成功使用 yii 进行 CAS 验证的过程。

我将客户端文件放在 /myapp/protected/vendor 目录下,然后将以下几行放在控制器的开头

Yii::import('application.vendors.*');
require_once('CAS/CAS.php');

然后我创建了使用我的 CAS 类的方法

public function casValidation()
{
   phpCAS::client(CAS_VERSION_2_0, $server, $port, "/cas",false);
   phpCAS::setNoCasServerValidation();
   phpCAS::forceAuthentication();

   if(isset($_REQUEST['logout'])) 
   {
      phpCAS::logout();
   }
}

最后我尝试从我的索引操作中验证

public function actionIndex()
{
   $this->casValidation();
   $this->render('index');
}

但是在网络浏览器中显示以下错误

PHP 警告

包括(CAS_Client.php)[function.include]:无法打开>流:没有这样的文件或目录

C:\app\vertrigo\Vertrigophp52\www\testyii\framework\YiiBase.php(427)

我错过了什么吗?我应该怎么做才能使事情正常进行?

4

1 回答 1

0

最后我让它工作了,结果我犯了几个错误。

首先,我不应该使用 require 语句。原因是 Yii 已经通过如下所示的 import 方法负责加载类。

Yii::import('application.vendor.CAS.*')

第二件事我在这个导入上有一个错字,我有

/* This is wrong */
Yii::import('application.vendors.CAS.*') 

代替

/* This is correct */
Yii::import('application.vendor.CAS.*') 

所以 Yii 正在寻找不存在的供应商目录。

最后,要成功使用导入方法,包含您的类的文件必须具有相同的名称。所以如果你有一个类名 user 你必须命名你的文件 user.php 以便 Yii 可以成功加载它。

于 2013-11-04T12:42:55.070 回答