博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在AD中存取照片
阅读量:6262 次
发布时间:2019-06-22

本文共 2251 字,大约阅读时间需要 7 分钟。

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
 4
string
 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

你可能感兴趣的文章
架构,改善程序复用性的设计~目录(附核心原代码)
查看>>
逆向反汇编代码推算C++的局部变量
查看>>
100个推荐的图片/内容滑动条
查看>>
秋式广告杀手:广告拦截原理与杀手组织
查看>>
内存溢出
查看>>
如何重启IIS进程
查看>>
分享一个javascript alert精简框架
查看>>
【解决方法】System.IO.FileNotFoundException
查看>>
Android 命令行编译、打包生成apk文件
查看>>
java中解决组件重叠的问题(例如鼠标移动组件时)
查看>>
使用 Navicat 8.0 管理mysql数据库(导出导入数据)
查看>>
视频会议
查看>>
EntityFramework系列:SQLite.CodeFirst自动生成数据库
查看>>
网络编码
查看>>
定时任务-在spring中配置quartz
查看>>
【springMVC 后台跳转前台】1.使用ajax访问的后台,后台正常执行,返回数据,但是不能进入前台的ajax回调函数中 ----2.前后台都没有报错,不能进入ajax回调函数...
查看>>
redis+Keepalived主从热备秒级切换
查看>>
Hibernate占位符警告:use named parameters or JPA-style positional parameters instead.
查看>>
基于 IdentityServer3 实现 OAuth 2.0 授权服务数据持久化
查看>>
是什么时候开始学习gulp了
查看>>