AD中有存放照片的字段吗?
答案肯定是有的、photo,jpegPhoto,thumbnailPhoto

前端时间客户,包括领导 在问通讯录中的照片为什么存在数据库中而不是AD中,AD中的属性能不能利用起来呢?
我想照片这么大的数据,如果用户量大的,应该是不建议存放在AD端的,不然为什么微软的ad管理器都没有照片的管理项呢?

但是既然领导问了,当然要去验证一下。。

 1   
 2 //获取需要修改的用户对象实体
 3 private DirectoryEntry getDirectoryEntryBy(string samAccountName)
 4         { 
 5             string path="LDAP://pcdc01.company.com/OU=上海XX软件有限公司,dc=company,dc=com";
 6             DirectoryEntry rootde = new DirectoryEntry(path, "userid", "pwd"); //访问用户
 7             DirectorySearcher ds = new DirectorySearcher(rootde);
 8             ds.SearchScope = SearchScope.Subtree;
 9             ds.Filter = "(&(&(objectCategory=person)(objectClass=user))(sAMAccountName=" + samAccountName + "))";
             SearchResult sr = ds.FindOne();
             if (sr != null)
             {
                return sr.GetDirectoryEntry();
             }
             else 
             {
                 return null;
             }
         }
 1 //以下代码是从AD中取图片 
 2 
 3 string account = this.tbAccount.Text;
 4             if ( account == "" )
 5             {
 6                 MessageBox.Show("请填写帐号");
 7                 return;
 8             }
 9             DirectoryEntry de = getDirectoryEntryBy(account);
             if (de == null)
             {
                 MessageBox.Show("帐号无效");
                 return;
             }
             string photocol = this.cbbPhotoCol.Text; //那个字段存取照片,三个中选一个
             
             System.DirectoryServices.PropertyValueCollection pvc = de.Properties[photocol];
             if (pvc.Value != null && pvc.Value is byte[])
             {
                 byte[] by = (byte[])pvc.Value;
                 MemoryStream Stream = new MemoryStream(by);
                 this.pbcontainer.Image = Image.FromStream(Stream);
             }
             else
             {
                 MessageBox.Show("False");
             }
 1 
 2将照片存到AD中
 3
 4string account = this.tbAccount.Text;
 5            if (account == "")
 6            {
 7                MessageBox.Show("请填写帐号");
 8                return;
 9            }
          
            string cc = this.textBox1.Text;
            if (cc == "")
            {
                MessageBox.Show("请选择图片");
            }
            else
            {
               Image im= Image.FromFile(cc);
               MemoryStream Stream = new MemoryStream();
               im.Save(Stream, System.Drawing.Imaging.ImageFormat.Jpeg);
               byte[] bb=Stream.GetBuffer();
               DirectoryEntry de = getDirectoryEntryBy(this.tbAccount.Text);
               if (de == null)
               {
                   MessageBox.Show("帐号无效");
                   return;
               }
               string photocol = this.cbbPhotoCol.Text;
               System.DirectoryServices.PropertyValueCollection pvc = de.Properties[photocol];
               pvc.Value = bb;
               de.CommitChanges();
               MessageBox.Show("更新成功");
            }

出处:http://www.cnblogs.com/xuanye/archive/2008/05/13/1195225.html

在AD中存取照片的更多相关文章

  1. jsp实现仿QQ空间新建多个相册名称,向相册中添加照片

    工具:Eclipse,Oracle,smartupload.jar:语言:jsp,Java:数据存储:Oracle. 实现功能介绍: 主要是新建相册,可以建多个相册,在相册中添加多张照片,删除照片,删 ...

  2. jsp实现仿QQ空间新建多个相冊名称,向相冊中加入照片

    工具:Eclipse,Oracle,smartupload.jar.语言:jsp,Java:数据存储:Oracle. 实现功能介绍: 主要是新建相冊,能够建多个相冊,在相冊中加入多张照片,删除照片,删 ...

  3. 使用Ruby来实现批量更新AD中字段

    准备工作 安装需要用到的gem gem install net-ldap gem install roo 准备好要更新的数据,比如exel表: /root/account.xlsx,内容如下 姓名 性 ...

  4. android: 从相册中选择照片

    虽然调用摄像头拍照既方便又快捷,但并不是每一次我们都需要去当场拍一张照片的. 因为每个人的手机相册里应该都会存有许许多多张照片,直接从相册里选取一张现有的照 片会比打开相机拍一张照片更加常用.一个优秀 ...

  5. MVP+RXJAVA+RecyclerView实现sd卡根目录下的所有文件中的照片加载并显示

    初学Rxjava,目前只能遍历加载指定目录下的所有文件夹中的照片,文件夹中如果还嵌套有文件夹目前还没找到实现方法. 先看mvp目录结构: 很抱歉,没有model. 接下来是view层的接口代码和pre ...

  6. 例说 AD中ROOM的使用

    从OrCAD中将网表导入之后,区别于从AD原理图中导入,笔者经过反复试验,发现在OrCAD中定义的种种区域属性,比如像Page,Class,Room,在AD中导入之后全部消失,这就意味着你本来按照模块 ...

  7. iOS中判断照片和相机权限

    1.照片权限判断 在iOS6之后,app中使用照片(即自带相册)需要用户权限验证,所以我们可以做一个权限判断给出友好的提示或者界面效果. 相册判断需要导入 <AssetsLibrary/Asse ...

  8. SharePoint自动化部署,利用PowerShell 导出/导入AD中的用户

    这几个月一直在帮客户改需求,部署.我已经心力憔悴,经过一段时间的摸索,我对用PowerShell实现自动化部署也有了一些心得,比如说利用PowerShell导出导入AD中的User.在基于ShareP ...

  9. 在 Core Data 中存取 transformable 类型的数据

    本文转载至 http://imenjoe.com/2015/04/10/CoreData-transformable-20150410/ 在开发过程中有一个需要在 Core Data 中存取 NSDi ...

随机推荐

  1. EditPlus 4.3.2473 中文版已经发布(10月21日更新)

    新的 EditPlus 修复了如下问题: * Ctrl+鼠标拖放文本功能异常 * 上传文件到 FTP 服务器失败后将弹出对话框,可重试上传 * 列选模式下粘贴到现存的选中内容时文本错乱的问题 本博客已 ...

  2. Python3.x:生成器简介

    Python3.x:生成器简介 概念 任何使用yield的函数都称之为生成器:使用yield,可以让函数生成一个序列,该函数返回的对象类型是"generator",通过该对象连续调 ...

  3. 20145309李昊《网络对抗》MSF应用基础

    实验内容 掌握metasploit的基本应用方式1.主动攻击——ms08_0672.针对浏览器的攻击——ms11_0503.针对客户端的攻击——Adobe4.成功应用一个辅助模块——scanner/d ...

  4. 20135320赵瀚青LINUX第七周学习笔记

    赵瀚青原创作品转载请注明出处<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 概述 本周学习的内容主要是讨 ...

  5. ubuntu18.04 install pip

    1. environment release version: bionic kernel version:4.15.0-29-generic 2.install pip 2.1 sudo apt-g ...

  6. linux 查看数据库和表

    mysql -h localhost -u 用戶名 -p密碼                //連接數據庫use desk_show;                                 ...

  7. 【eclipse】Server Tomcat v9.0 Server at localhost failed to start.

    Server Tomcat v9.0 Server at localhost failed to start. 的一个原因就是启动超时了.

  8. Docker:Err http://archive.ubuntu.com trusty InRelease & E: Unable to locate package [name] 问题

    参考: Docker containers can't resolve DNS on Ubuntu 14.04 Desktop Host Unable to locate package错误解决办法 ...

  9. SDN前瞻 该来的来了!SDN 软件定义网络

    SDDC:Software Defined Data Center 软件定义数据中心,全数据中心软件化. 在我们接触SDN概念之前,服务器虚拟化,软件虚拟化技术已经是非常成熟了.如果网络能够被虚拟化, ...

  10. Tensorflow一些常用基本概念与函数(四)

    摘要:本系列主要对tf的一些常用概念与方法进行描述.本文主要针对tensorflow的模型训练Training与测试Testing等相关函数进行讲解.为‘Tensorflow一些常用基本概念与函数’系 ...