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. Redis 资料整理

    Redis is an open source, BSD licensed, advanced key-value store. Redis is often referred to as a dat ...

  2. selenium-python读取XML文件

    首先这是我们要读取的XML文件 <?xml version="1.0" encoding="utf-8" ?><info> <ba ...

  3. awk处理excel表格数据

    拿到一个ip的excel表格,要对单元格中的ip进行扫描,一看有点乱,有空格分割的,有"/"分割的,有带括号(分割的,有好几百个: 要把左边的变为右边的格式,用excel自带的功能 ...

  4. 20145106 java实验一

    因为之前就使用过eclipse所以本次试验开始阶段并没有遇到什么大问题,按照步骤做下来. 我的实验序号根据算法是第二个四则运算的实验. 加法: package ljp; public class he ...

  5. 20145322何志威《网络对抗》Exp2 后门原理与实践

    基础问题回答 1 例举你能想到的一个后门进入到你系统中的可能方式? 在网上下载盗版软件时捆绑的后门程序. 不小心进入钓鱼网站. 2 例举你知道的后门如何启动起来(win及linux)的方式? Wind ...

  6. Rsync+sersync实现实时同步

    介绍: sersync主要用于服务器同步,web镜像等功能.基于boost1.43.0,inotify api,rsync command.开发.目前使用的比较多的同步解决方案是inotify-too ...

  7. LightOJ 1071 Baker Vai(拆点+最大费用流)题解

    题意:给一个n*m的方格,每个格子上都有一个数字表示价值,小A在左上角,他从左上角走到右下角只能向右或向下走,然后再从右下角走上左上角,这次只能向上或向左走,这两条路绝对没有重复,问你怎样走有最大价值 ...

  8. MyBatis获取SqlSession

    package com.ykmimi.dao; import org.apache.ibatis.session.SqlSession; import com.ykmimi.entity.Studen ...

  9. Axios 使用采坑经验

    报错信息:Uncaught (in promise) DOMException: Failed to execute 'open' on 'XMLHttpRequest': Invalid URL 解 ...

  10. 个人知识管理系统Version1.0开发记录(07)

    模 块 复 用 原本还要测试一会的,突然出现一连串诡异的问题,比如,编译少加载个类啊,输入地址少个字母啊,改几行代码一改就是半小时啊.这是在提醒我们大脑疲倦了,所以果断小结,下次继续.这一次简单完成了 ...