PHP ADLogin
<?php
$user = 'aaaa';
$password = 'xxxx';
$domain = 'b.a.com'; //设定域名
$port = 3268;
$basedn = 'dc=b,dc=a,dc=com'; //如果域名为“b.a.com”,则此处为“dc=b,dc=a,dc=com”
$filter = "(SAMAccountName=aaaa)";
$attr = array("thumbnailphoto");
$conn = ldap_connect ( $domain,$port ) or die ( 'Could not connect to LDAP server.' );
$bind = @ldap_bind ( $conn, "{$user}@{$domain}", $password ) or die ( 'Authorization failed! Please check your username or password!' );
if( $bind )
{
$result = @ldap_search( $conn, $basedn, $filter, $attr);
// retrieve all the entries from the search result
$info = ldap_get_entries( $conn, $result );
$entry = ldap_first_entry($conn,$result);
}
else
{
echo 'error<br>';
echo ldap_error( $conn );
exit;
}
#print_r($info);
if( $info)
{
$values = @ldap_get_values_len($conn, $entry, "thumbnailPhoto");
echo '<img src="'.data_uri($values[0], 'image/png').'">';
if(!$values) {
echo "no thumbnail photo<br>";
}
// Add the user’s department name and email address
// to the session
echo $info[0]['thumbnailPhoto'][0];
foreach($info as $k => $v)
{
echo $v['cn'][0]."<br>" ;
echo $v['displayname'][0]."<br>" ;
echo $v['mail'][0]."<br>" ;
echo $v['department'][0]."<br>" ;
echo $v['company'][0]."<br>" ;
echo $v['streetaddress'][0]."<br>" ;
echo $v['countryCode'][0]."<br>" ;
echo $v['userPrincipalName'][0]."<br>" ;
echo $v['manager'][0]."<br>" ;
echo $v['sn'][0]."<br>" ;
echo $v['pwdLastSet'][0]."<br>" ;
echo $v['postalCode'][0]."<br>" ;
echo $v['title'][0]."<br>" ;
echo $v['thumbnailPhoto'][0]."<br>" ;
echo $v['location'][0]."<br>" ;
}
}
else
{
echo ldap_error($conn);
exit;
}
// close connection to ldap server
$ldap_close( $conn );
function data_uri($file, $mime) {
$base64 = base64_encode($file);
return ('data:' . $mime . ';base64,' . $base64);
}
?>
PHP ADLogin的更多相关文章
- 7天学会HTML--HTML综述
一周学会HTML 1.HTML是什么? HTML 指的是超文本标记语言 (Hyper Text Markup Language) 2.HTML发展历程 HTML版本从1.0到4.0不断升级,其版本的规 ...
- Ext sqlserver C# 数据库备份还原代码,给大家参考下
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %& ...
- JAVA使用Ldap操作AD域
项目上遇到的需要在集成 操作域用户的信息的功能,第一次接触ad域,因为不了解而且网上其他介绍不明确,比较费时,这里记录下. 说明: (1). 特别注意:Java操作查询域用户信息获取到的数据和域管理员 ...
- Web购物车案例(servlet+bean+jsp)
一些B话 事情来得太突然,一个朋友说是要我帮忙做一个JavaWeb的课程设计,在过一天就要去答辩了- 这我哪受的了时间这么短还没有~~~,正准备委婉的拒绝的时候他说写完之后给我那个啥- 好吧,我就是这 ...
随机推荐
- matlab生成HEX文件-任意信号 大于64K长度
HEX文件格式不赘述,写里直接放上代码.请批评改正. %%convert a signal data into hex file format % data format:16bit % signal ...
- 【问题&解决】解决 Android SDK下载和更新失败“Connection to https://dl-ssl.google.com refused”的问题
缘由: 更新sdk,遇到了更新下载失败问题: Fetching https://dl-ssl.google.com/android/repository/addons_list-2.xmlFetche ...
- 对Spring的IoC和DI最生动的解释
首先想说说IoC(Inversion of Control,控制倒转).这是spring的核心,贯穿始终.所谓IoC,对于spring框架来说,就是由spring来负责控制对象的生命周期和对象间的关系 ...
- AC日记——斗地主(dfs)
题目描述 牛牛最近迷上了一种叫斗地主的扑克游戏.斗地主是一种使用黑桃.红心.梅花.方片的A到K加上大小王的共54张牌来进行的扑克牌游戏.在斗地主中,牌的大小关系根据牌的数码表示如下:3<4< ...
- Android service ( 二) 远程服务
通常每个应用程序都在它自己的进程内运行,但有时需要在进程间传递对象,你可以通过应用程序UI的方式写个运行在一个不同的进程中的service.在android平台中,一个进程通常不能访问其他进程中的内存 ...
- WebApi 返回小驼峰式 json 格式,并格式化日期
from:http://blog.csdn.net/magiccops/article/details/42969363 屏蔽默认返回xml格式:Global文件加:GlobalConfigurati ...
- [转]iOS 应用内付费(IAP)开发步骤
FROM : http://blog.csdn.net/xiaoxiangzhu660810/article/details/17434907 参考文章链接: (1)http://mobile.51c ...
- 为什么需要DTO(数据传输对象)
DTO即数据传输对象.之前不明白有些框架中为什么要专门定义DTO来绑定表现层中的数据,为什么不能直接用实体模型呢,有了DTO同时还要维护DTO与Model之间的映射关系,多麻烦. 然后看了这篇文章中的 ...
- Linux 基础入门(新版)”实验报告一~十二
实验报告 日期: 2015年9月15日 一.实验的目的与要求 熟练地使用 Linux,本实验介绍 Linux 基本操作,shell 环境下的常用命令. 二.主要内容 1.Linux 基础入门& ...
- linux下gcc编译多个源文件、gdb的使用方法
一. gcc常用编译命令选项 假设源程序文件名为test.c. 1. 无选项编译链接 用法:#gcc test.c 作用:将test.c预处理.汇编.编译并链接形成可执行文件.这里未指定输出文件,默认 ...