5

在 PHP 中,假设我在第 1 页上有一个 LDAP 连接:

$ldapconn = ldap_connect($ldapserver);
if ($ldapconn) {
      // binding to ldap server
      $ldapbind = ldap_bind($ldapconn, $ldaprdn, $ldappass);
}
// do stuff here

假设一切顺利并且我能够实际做一些事情,我怎样才能保存这个绑定,以便当用户点击第二页时,我不需要再次使用他们的用户名/密码执行 ldap_bind。本质上,如果出于安全目的可以避免,我不想将密码存储在会话中,但我想保持连接,以便我可以在其他页面上重复使用它。

4

3 回答 3

3

PHP LDAP 不支持持久连接。根据您正在执行的 LDAP 查询类型和频率,您始终可以设置一个数据库,以加密状态存储用户名/密码,然后将 ID 保留在会话中的该记录中(存储不是一个好主意用户名/密码)。类似于这里的回答。如果您扩展您正在尝试做的事情,也许会帮助我们指导您更好地完成它。如果它只是用于验证登录,那么一旦它们通过 LDAP 验证,您就可以在会话中输入一个值,表明它们已经过验证。

于 2012-11-16T19:13:38.373 回答
0

我过去所做的是,如果您可以控制 LDAP 服务器,是否拥有一个只有读取权限的“查询”用户。您将其作为全局存储在配置文件或数据库中,并在您需要进行简单查询时与此帐户进行所有绑定,并且仅在初始身份验证时使用用户名和密码。

于 2012-11-16T19:16:02.593 回答
-1

另一种解决方案不是重新检查他们是否已登录,而是创建一个 cookie 或会话,其中包含一些告诉您用户已登录的字符串。

然后在新页面上验证该会话是否存在。添加一个超时,这样如果 10 分钟内没有更新,登录的 cookie 就会过期。

于 2012-11-16T19:17:55.043 回答