我一直在使用CakePHP的Auth帮助器,虽然它已经成功,但最近我被要求重新设计我们的系统。我们允许用户使用他们的Active Directory凭据登录。
实际上对用户进行身份验证很容易,而且我已经有了执行此操作的代码。然而,Auth本身却笼罩在神秘之中,我还没有游过它的源代码。我想要做的是让系统尝试使用标准的Auth方法进行身份验证,如果失败,则回退到Active Directory并尝试以这种方式进行身份验证。
数据库方面,我认为我需要修改我的用户表以某种方式存储Active Directory凭据(就像存储AD用户名一样简单就足够了,因为它只是一个链接)然后手动记录用户进来。有没有办法告诉Auth“嘿,我现在以这个用户身份登录”而没有登录POST()?
我正在做的所有这一切的主要原因是避免必须通过完全切换Auth来重写项目中其他地方的大量代码。这可能是一个坏主意,如果我引入一些隐藏的不安全感,以后会咬我。
哦:我们正在使用CakePHP 1.3。我并不反对将项目升级到2.0版本,但除非有充分的理由,否则我会避免使用它。
答案 0 :(得分:1)
我相信你可以打电话:$Auth->login($user);
其中$ user包含查询数据。因此,如果您拥有与数据库中的用户帐户记录关联的Active Directory凭据,则可以执行以下操作:
$user = $this->User->find('first', array('conditions' => array({ACTIVE RECORD SEARCH})));
$Auth->login($user);
现在您以该用户身份登录。