В KNN выход полностью зависит от ближайших соседей, что может быть или не быть хорошим выбором. Также он чувствителен к метрикам расстояния. Больше вы можете найти здесь здесь . И отличная дискуссия о ее метриках расстояний может быть полезной для вас.
С другой стороны, CNN извлекает признаки из входных данных. Которые очень полезны для проведения анализа. И недавний успех в CNN специально wavenet для аудио приложения, я предпочту пойти с CNN.
Редактировать: Учитывая ваш размер данных, CNN не является хорошим вариантом здесь.
Общая процедура была бы (соответствующий ext/ldap php управляет в скобках):
подключение к серверу LDAP с помощью "Хоста LDAP" и "порта LDAP не" ( ldap_connect () ) и набор корректные опции соединения ( ldap_set_option () ), особенно LDAP_OPT_PROTOCOL_VERSION
и LDAP_OPT_REFERRALS
связывают с сервером LDAP с помощью "учетной записи LDAP для привязки" и "пароль учетной записи LDAP" ( ldap_bind () ) - если Вы проходите проверку подлинности против сервера Active Directory, можно непосредственно использовать имя пользователя и пароль от страницы входа в систему и пропустить все следующие шаги.
ищут дерево пользовательскую запись/объект соответствия specifing "ОСНОВНОЙ DN" и соответствующий фильтр LDAP - скорее всего, что-то как (&(objectClass=user)(sAMAccountName=%s))
, где %s
должен быть заменен именем пользователя, которое будет аутентифицироваться ( ldap_search () )
проверка, если количество возвращенных записей равняется 1 (если <> 1 затем что-то пошло не так, как надо, например, никакой пользователь не нашел, или многочисленные пользователи нашли)
retrive, который отличительное имя (DN) этого однократного въезда ( ldap_get_dn () )
использует DN, который, как находят на последнем шаге, пытался связать с сервером LDAP с паролем, данным в странице аутентификации ( ldap_bind () )
, если связывание успешно выполняется затем, все в порядке, в противном случае скорее всего, пароль неправильный
, Это действительно не настолько трудно, как это звучит сначала. Обычно я предлагал бы пользоваться своего рода стандартной библиотекой для аутентификации против сервера LDAP такой как Net_LDAP2
ГРУШЕВЫЙ пакет или Zend_Ldap
из Платформа Зенда . У меня нет опыта с фактическим использованием Net_LDAP2
(хотя я знаю, что код вполне хорошо), но Zend_Ldap
работы очень хорошо против серверов Active Directory или серверов ADAMS (который является, очевидно, что Вы работаете с).
Это добьется цели использование Zend_Ldap
:
$options = array(
'host' => 'ad.blueroom.ac.uk',
'useStartTls' => true,
'accountDomainName' => 'blueroom.ac.uk',
'accountCanonicalForm' => 4,
'baseDn' => 'ou=bluebird,dc=bluebird,dc=ac,dc=my',
);
$ldap = new Zend_Ldap($options);
try {
$ldap->bind('user', 'password');
} catch (Zend_Ldap_Exception $e) {
// something failed - inspect $e
}
// bind successful
$acctname = $ldap->getCanonicalAccountName('user', Zend_Ldap::ACCTNAME_FORM_DN);
Вы могли бы попробовать http://code.activestate.com/recipes/101525/ при обращении к http://us3.php.net/ldap и другие результаты поиска Google [php аутентификация LDAP] .
вы можете использовать http://pear.php.net/package/Net_LDAP2/docs это красиво и работает.
Пример подключения, взятый из документа:
// Inclusion of the Net_LDAP2 package:
require_once 'Net/LDAP.php';
// The configuration array:
$config = array (
'binddn' => 'cn=admin,ou=users,dc=example,dc=org',
'bindpw' => 'password',
'basedn' => 'dc=example,dc=org',
'host' => 'ldap.example.org'
);
// Connecting using the configuration:
$ldap = Net_LDAP2::connect($config);
// Testing for connection error
if (PEAR::isError($ldap)) {
die('Could not connect to LDAP-server: '.$ldap->getMessage());
}