0
我一直在嘗試找到登錄後調用CDbHttpSession的位置,以便重寫它。Yii CDbHttpSession,它叫什麼名字?
我的問題是我在我的應用程序中有3個產品,並且每個都限制在X個併發用戶上,所以我不應該允許任何用戶訪問這些產品,直到有人關閉會話或管理員手動從D B。
任何幫助我如何實現它?
謝謝!
我一直在嘗試找到登錄後調用CDbHttpSession的位置,以便重寫它。Yii CDbHttpSession,它叫什麼名字?
我的問題是我在我的應用程序中有3個產品,並且每個都限制在X個併發用戶上,所以我不應該允許任何用戶訪問這些產品,直到有人關閉會話或管理員手動從D B。
任何幫助我如何實現它?
謝謝!
這是一個固定的應用程序組件,可從CWebApplication
獲得。所以你可以通過Yii::app()->session
訪問會話實例。您可以在main.php
中配置您自己的會話組件。
'components' => array(
'session' => array(
'class' => 'MyCustomSession',
),
),
但是,這可能不是您想要解決您的問題的正確位置。 PHP的會話系統中沒有「close session」事件。所以當用戶「關閉」他的會話時,你無法真正發現。
有什麼可以幫到你的,也許afterLogin()
和afterLogout()
方法CWebUser
。就像session
組件一樣,你也可以用你自己的類覆蓋user
組件。在那裏,你至少可以掌握每一個登錄/註銷過程並做一些事情。但請注意,註銷不一定總是會發生:會話可以簡單地超時,並且如果它不會被暫停。
如果您需要以任何精度控制併發訪問,會話不會削減它。 – Jon 2013-04-30 21:17:10