zoukankan      html  css  js  c++  java
  • 在AD中存取照片

    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 + "))";
    10             SearchResult sr = ds.FindOne();
    11             if (sr != null)
    12             {
    13                return sr.GetDirectoryEntry();
    14             }
    15             else 
    16             {
    17                 return null;
    18             }
    19         }

     1 //以下代码是从AD中取图片 
     2 
     3 string account = this.tbAccount.Text;
     4             if ( account == "" )
     5             {
     6                 MessageBox.Show("请填写帐号");
     7                 return;
     8             }
     9             DirectoryEntry de = getDirectoryEntryBy(account);
    10             if (de == null)
    11             {
    12                 MessageBox.Show("帐号无效");
    13                 return;
    14             }
    15             string photocol = this.cbbPhotoCol.Text; //那个字段存取照片,三个中选一个
    16             
    17             System.DirectoryServices.PropertyValueCollection pvc = de.Properties[photocol];
    18             if (pvc.Value != null && pvc.Value is byte[])
    19             {
    20                 byte[] by = (byte[])pvc.Value;
    21                 MemoryStream Stream = new MemoryStream(by);
    22                 this.pbcontainer.Image = Image.FromStream(Stream);
    23             }
    24             else
    25             {
    26                 MessageBox.Show("False");
    27             }


     1 
     2将照片存到AD中
     3
     4string account = this.tbAccount.Text;
     5            if (account == "")
     6            {
     7                MessageBox.Show("请填写帐号");
     8                return;
     9            }

    10          
    11            string cc = this.textBox1.Text;
    12            if (cc == "")
    13            {
    14                MessageBox.Show("请选择图片");
    15            }

    16            else
    17            {
    18               Image im= Image.FromFile(cc);
    19               MemoryStream Stream = new MemoryStream();
    20               im.Save(Stream, System.Drawing.Imaging.ImageFormat.Jpeg);
    21               byte[] bb=Stream.GetBuffer();
    22               DirectoryEntry de = getDirectoryEntryBy(this.tbAccount.Text);
    23               if (de == null)
    24               {
    25                   MessageBox.Show("帐号无效");
    26                   return;
    27               }

    28               string photocol = this.cbbPhotoCol.Text;
    29               System.DirectoryServices.PropertyValueCollection pvc = de.Properties[photocol];
    30               pvc.Value = bb;
    31               de.CommitChanges();
    32               MessageBox.Show("更新成功");
    33            }

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

  • 相关阅读:
    芯片光刻的流程详解
    中国半导体上市公司2018年的表现盘点:材料和设备篇
    中国半导体上市公司2018年的表现盘点:代工和封测篇
    spring-cloud-sleuth 和 分布式链路跟踪系统
    Jdk和Spring Boot版本选择
    mockplus 原型设计工具
    showdoc 文档管理系统
    禅道项目管理系统
    docker 基础知识分享ppt
    项目管理成功之要素-转载
  • 原文地址:https://www.cnblogs.com/mq0036/p/8482668.html
Copyright © 2011-2022 走看看