[英]PHP LDAP bind intermittent issue
我正在為我的公司開發一個需要用戶登錄的應用程序。為了使登錄過程自動化,我嘗試將ldap id和密碼身份驗證與此應用程序集成在一起。 以下是我為此集成編寫的代碼。 我已經在線檢查過,找不到任何人遇到此問題。
我有這個代碼->
function isAuthenticated($u,$p) {
$ldap_host = 'my_host';
$ldap = ldap_connect($ldap_host);
ldap_set_option(NULL, LDAP_OPT_DEBUG_LEVEL, 7);
if($ldap) {
if($bind = ldap_bind($ldap,$u,$p)) {
ldap_unbind($ldap);
return 'Authenticated';
} else {
return 'Invalid Credentials';
}
} else {
return 'Not able to connect';
}
}
$username = 'preventAnonymousLogin';
$password = 'preventAnonymousLogin';
if(isset($_REQUEST['uname'])) {
$username = $_REQUEST['uname'];
}
if(isset($_REQUEST['password'])) {
$password = $_REQUEST['password'];
}
$auth = isAuthenticated($username,$password);
這在大多數情況下都有效,但有時卻不起作用,並給出此錯誤->
Fatal error: Maximum execution time of 30 seconds exceeded in C:\xampp\htdocs\avrs\htdocs\ldap.php on line 12
我不知道為什么這有時會起作用,有時卻不起作用。 請提出建議。 提前致謝。
相同的代碼會間歇性地工作。 我已經嘗試清除Cookie,並且所有這些似乎都可以在一段時間內正常工作,但現在不是。 因此,除非我確切知道問題出在哪里,否則我認為我將永遠無法解決此問題。
確保提供ldap_host的完整DNS名稱,例如myhost.mydomain.com。
根據錯誤,您可以嘗試將C:\\ xampp \\ htdocs \\ avrs \\ htdocs \\ ldap.php中的最大腳本執行時間設置為60秒或大於30秒。 從上面的代碼來看,它看起來像
function isAuthenticated($u,$p) {
set_time_limit(60);
// Rest of your code from above
}
看一下這些例子。 第一個是一個非常簡單的LDAP /活動目錄登錄腳本。 第二個實際上是為Yii框架構建的,但是更強大,因為它可以在多個服務器之一發生故障的情況下使用多個服務器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.