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. ZW云推客即将登场

    ZW云推客即将登场   即"4K云字库"框架文件发布后,ZW团队即将发布一全功能的:ZW云推客系统. ZW云推客系统,是原zBrow"百万社区营销系统".&qu ...

  2. 向Oracle 数据表中插入一条带有日期类型的数据

    有一张表:batch(批次表) 表的字段如下: 第一种情况: 现在需要插入一条当前的系统时间 sql 如下: insert into batch (batch_id, cus_id, batch_nu ...

  3. bzoj1618 / P2918 [USACO08NOV]买干草Buying Hay(完全背包)

    P2918 [USACO08NOV]买干草Buying Hay 显然的完全背包 设$f[i]$为买$i$磅干草的最小代价 搞搞完全背包即可 注意到最后可能买的干草超出范围,但是价格可能更低. 于是我们 ...

  4. 20145319 《网络渗透》MSF基础应用

    20145319 <网络渗透>MSF基础应用 一 实验链接 渗透实验一:MS08_067渗透实验 渗透实验二:MS11_050渗透实验 渗透实验三:Adobe阅读器渗透实验 渗透实验四:M ...

  5. 如何使用AngularJS对表单提交内容进行验证

    AngularJS是一款优秀的前端JS框架,已经被用于Google的多款产品当中.它有着诸多特性,最为核心的是:MVC.模块化.自动化双向数据绑定.语义化标签.依赖注入等……使用它可以大大减少书写代码 ...

  6. 扩容swap交换分区空间

    安装linux系统时会指定Swap分区大小,一般是内存的两倍,但在有些场景下可能预先设置的Swap分区空间不足,这个时候需要增加其大小 官方建议在RAM是2到4.5G时,swap是RAM的2倍:如果R ...

  7. 【软件位置】Linux查看软件安装的位置

    如果我们在Linux 系统上安装了某个软件,我们可以通过如下的三种方式来确定. 一.        Which 命令 Shell 的which 命令可以找出相关命令是否已经在搜索路径中. 如: [ro ...

  8. burnside引理&polya定理

    burnside引理&polya定理 参考资料: <polya计数法的应用>--陈瑜希 黄学长 置换: 置换即是将n个元素的染色进行交换,产生一个新的染色方案. 群: 一个元素的集 ...

  9. [笔记] SQL性能优化 - 常用语句(二)

    1.查询CPU开销大的语句 total_worker_time/execution_count AS avg_cpu_cost, plan_handle, execution_count, ( , ( ...

  10. UVa 10054 项链(欧拉回路)

    https://vjudge.net/problem/UVA-10054 题意:有一种由彩色珠子连接成的项链.每个珠子的两半由不同颜色组成.相邻两个珠子在接触的地方颜色相同.现在有一些零碎的珠子,需要 ...