IIS 7 üzerinde PHP ile kullanıcı kimlik Erişme

1 Cevap php

Biz IIS 7 sever üzerine WordPress MU yüklüyorsanız

Biz AD karşı tek bir oturum etkinleştirmeniz gerekir.

Biz vb kullanıcıları için hesap oluşturmak / otomatik giriş PHP kodlamak için mutluyuz

Biz yardıma ihtiyacı nedir biz bunları kullanmak, böylece biz kullanıcılara PHP değişkenlere IIS / Windows Server Kimlik (adınızı, e-posta, isim vb) almak nasıl olduğunu.

Memnuniyetle Tüm danışmanlık

1 Cevap

LDAP kullanmak istiyorum. Benim için zor kısmı OU endam oldu benim kullanıcılar vardı ve (yerine domain \ username USERNAME@DOMAIN.COM) bizim adlarını için gerekli biçimi. Biz varsayılan Kullanıcılar OU hepsini var. Bu benim yazdığım bir CakePHP'de app alınan ve bazı ek bilgiler kapmak, ancak doğru yolda boyunca size ayarlamanız gerekir almaktadır. Tabii ki php bir ldap uzantısı derlenmiş olması gerekir.

protected function findLdapUser($username, $password, $otheruser = false){
	$config = Configure::read('ldap');
	if(!$username && !$password && $otheruser){
		$username = $config['username'];
		$password = $config['password'];
	}
	if($password == ""){return false;} //prevent anonmyous bind
	if(!$otheruser){
		$otheruser = $username;
	}
	$connection = ldap_connect($config['host'], $config['port']);
	if($connection === false){		//does not detect properly depending on enviroment!
		debug("cannot connect to ldap server");
		return 0; //cannot connect!
	}
    ldap_set_option($connection, LDAP_OPT_PROTOCOL_VERSION, $config['version']);
    if (!@ldap_bind($connection, $username . $config['userpostfix'], $password)){
        return false;
	}

	//search for user data
	$fields = array('mail', 'name', 'telephoneNumber', 'physicalDeliveryOfficeName');
	//$filter = "sAMAccountName=" . $username;
	$filter = "userPrincipalName=" . $otheruser . $config['userpostfix'];
	$results = ldap_search($connection, "CN=USERS,".$config['basedn'], $filter, $fields);
	$info =  ldap_get_entries($connection, $results);
	if($info['count'] == 0){return false;}
	@ldap_unbind($connection);
	$return['LdapUser']['email'] = $info[0]['mail'][0];
	$return['LdapUser']['fullname'] = $info[0]['name'][0];
	//supress warnings
	@$return['LdapUser']['office'] = $info[0]['physicaldeliveryofficename'][0];
	@$return['LdapUser']['phone'] = $info[0]['telephonenumber'][0];
	return $return;
}