【发布时间】:2015-03-24 03:11:52
【问题描述】:
没有 codeigniter 我可以使用 ldap_connect() 但在 codeigniter 项目中我想使用 ldap 连接来验证用户的 Windows 用户名和密码。下面是在没有 codeigniter 的情况下完美运行的代码。
/******LDAP CONNECTIVITY STARTS HERE*********/
$ldaprdn = $_POST['uname']; // ldap rdn or dn
$ldappass = $_POST['upass']; // associated password
$ldaprdn = $_POST['uname'].'@domain.com';
$ldapconn = ldap_connect("ip") or die("Could not connect to LDAP server."); //our ip
if ($ldapconn) {
$ldapbind = ldap_bind($ldapconn, $ldaprdn, $ldappass);
// verify binding
if ($ldapbind) {
//echo "<pre>";
//print_r($row_login);
//exit;
$_SESSION['appusername']=$_POST['uname'];
$_SESSION['emp_code']=$row_login['emp_code'];
$_SESSION['emp_id']=$row_login['emp_id'];
$_SESSION['emp_name']=$row_login['emp_name'];
$_SESSION['emp_email']=$row_login['emp_email'];
$_SESSION['emp_dept_id']=$row_login['emp_dept_id'];
$_SESSION['emp_dept_name']=$row_login['dept_name'];
$_SESSION['emp_group']=$row_login['emp_group'];
$_SESSION['emp_category']=$row_login['emp_category'];
$_SESSION['finance_app_authority']=$row_login['finance_approval_status'];
$_SESSION['line_eng_status']=$row_login['line_eng_status'];
$_SESSION['line_name']=$row_login['line_name'];
$_SESSION['dept_name']=$row_login['dept_name'];
if($row_login['emp_mod_status']=='Y'){ //if moderator means
$_SESSION['userType']='MOD';
}
else if($row_login['emp_id']==$row_login['dept_hod_id']){ //if HOD means
$_SESSION['userType']='HOD';
}else{ //if normal user means
$_SESSION['userType']='EMP';
}
echo '<script language="javascript">document.location.href="?p=main&m=it-home"</script>';
exit;
}
else{
echo '<div class="man_style" style="width:50%;padding:10px 10px 10px 250px !important;text-align:center;color:red;">Invalid password.</div>';
}
}
我想要的只是在 codeigniter 中通过 windows 用户名和密码对用户进行身份验证。请给我一个非常简单的方法。
我尝试了 Auth_Ldap 库,但仍然出现错误
LDAP 功能不存在。要么加载模块 ldap php 模块,要么使用编译了 ldap 支持的 php。
我使用了 Auth_Ldap 库文件。以下配置文件 不知道在哪里给我的主机IP地址
$config['account_suffix'] = '@abcd.com';
$config['base_dn'] = 'DC=domain,DC=local';
$config['domain_controllers'] = array ("server1.domain.local");
$config['ad_username'] = 'administrator';
$config['ad_password'] = 'password';
$config['real_primarygroup'] = true;
$config['use_ssl'] = false;
$config['use_tls'] = false;
$config['recursive_groups'] = true;
/* End of file adldap.php */
/* Location: ./system/application/config/adldap.php */
感谢您的帮助
【问题讨论】:
-
你能发布你的codeigniter代码吗?
-
@NishanthMatha 我已经更新了代码。请检查我不知道如何在 codeigniter
$ldapconn = ldap_connect("ip") or die("Could not connect to LDAP server.");和$ldapbind = ldap_bind($ldapconn, $ldaprdn, $ldappass);中替换/使用这两行 -
你记得把文件添加到
/application/libraries,然后使用$this->load->library('library_name');加载库
标签: php codeigniter authentication ldap ldapconnection