Zend Framework 1.11与Doctrine 2相当新。
我已使用Doctrine成功创建了登录等。
我当前的问题是,当我留在登录所在的控制器内时,Zend_Auth实例正常工作。
如果我尝试在任何其他控制器中确定Zend_Auth :: getInstance-> HasIdentity()的状态,它将返回空白。
如果我然后返回到包含登录/身份验证的控制器中的任何页面,hasIdentity工作正常。
我甚至尝试过写入存储,但这并没有带来任何乐趣。
我的身份验证码如下,这是点击登录后调用的操作(在MembersareaController中)
public function authAction()
{
$this->_helper->viewRenderer->setNoRender(true);
$loginForm = new Application_Model_Login();
if($this->getRequest()->isPost()){
$usr = "";
$pwd = "";
$KeepLoggedIn = false;
$message = "";
$usr = $this->_getParam('username');
$pwd = $this->_getParam('password');
$pwdMd5 = md5($pwd);
if($usr !== "" && $pwd !== ""){
$GDSAdaptor = new ZC_Auth_Adapter($usr, $pwdMd5);
$result = \Zend_Auth::getInstance()->authenticate($GDSAdaptor);
if(\Zend_Auth::getInstance()->hasIdentity()){
$this->flashMessenger->addMessage(LOGIN_SUCCESS);
$this->_redirect('/membersarea/index');
}else{
$this->flashMessenger->addMessage(LOGIN_INVALID);
}
}else{
$this->flashMessenger->addMessage(LOGIN_MISSING_FORMVAL);
$this->_redirect('/membersarea/login');
}
}
尝试使用以下代码在IndexController上登录某人时,不会产生任何结果。 hasIdentity返回一个空值。
public function indexAction()
{
if(Zend_Auth::getInstance()->hasIdentity())
{
$msg = "hasIdentity: YES";
}else{
$msg = "hasIdentity: NO";
}
$this->view->msg = $msg;
}
答案 0 :(得分:0)
了Zend_Session ::了rememberMe();在bootstrap中解决了这个问题