2013-11-01 147 views
1

CAS認證,我面臨着一些困難想實現CAS認證與Yii框架。我downloaded the client classes和一切工作時,我不使用任何框架,但是當我嘗試與Yii驗證似乎根本不工作。與Yii框架

任何人都可以請說明過程中successfuly使CAS驗證與誼。

我把客戶端的文件/ MYAPP /保護/供應商的目錄下,然後我把下面的線在控制器的開頭

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)[]:未能打開>流:沒有這樣的文件或目錄

C:\應用程序\ vertrigo \ Vertrigophp52 \ WWW \ testyii \框架\ YiiBase.php(427)

我這麼想嗎?我應該怎麼做才能使事情發揮作用?

+0

_「似乎根本不工作」 _是一個模糊的指控,並_「任何人都可以請說明過程中successfuly做與警予一個CAS驗證」 _是一個模糊的期望;) – geomagas

回答

0

最後我得到了它的工作,事實證明,我已經做了幾個錯誤。

首先我不應該使用require語句。原因是Yii alredy負責通過導入方法加載類,如下所示。

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

第二件事我對這個導入一個錯字,我不得不

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

,而不是

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

所以Yii中一直在尋找不存在的供應商目錄。

最後,成功地使用導入方法包含類文件必須具有相同的名稱。所以如果你有一個類名的用戶,你必須命名你的文件user.php,以便Yii能夠成功加載它。