成功登录ldap后启动php会话

时间:2019-11-22 11:57:28

标签: php session

关于启动PHP会话的问题似乎很常见,但是我没有遇到任何有关此问题的描述。

我正在使用ldap_bind来让用户在我的站点中进行身份验证,如果他们成功进行身份验证,我只希望他们访问登录名后面的页面。

为此,我相信我需要创建一个PHP会话,但是应该在登录页面的开头创建PHP会话,还是仅在他们成功通过ldap_bind进行身份验证后才创建? >

如果是后者,那么我应该将session_start();放在我的if语句中,该语句用于检查提供的用户名和密码是否适用于LDAP绑定,如果可以,我是否应该在{中调用会话用户名{1}}页?

我的ldap绑定非常简单:

'protected'

受保护页面顶部的可能代码:

$ldapconn = ldap_connect("11.222.33.44")
    or die("Could not connect to LDAP server.");

if ($ldapconn) {

    // binding to ldap server
    $ldapbind = ldap_bind($ldapconn, "uid=$username,cn=users,dc=abc,dc=net", "$password");

    // verify binding
    if ($ldapbind) {
worked
sessinon_start();
} else {
didnt work } }

1 个答案:

答案 0 :(得分:1)

您需要在页面的开头开始会话,并在成功的ldap bind上设置会话。不,您不需要在受保护的页面中调用用户名,因为ldap本身就是Windows身份验证

 session_start();
$ldapconn = ldap_connect("11.222.33.44")
or die("Could not connect to LDAP server.");

if ($ldapconn) {

// binding to ldap server
$ldapbind = ldap_bind($ldapconn, "uid=$username,cn=users,dc=abc,dc=net", "$password");

// verify binding
if ($ldapbind) {
$_SESSION['username']=username;
} else {
//didnt work } }