[Solution I]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | static void InsertPicture( string userName, byte [] data) { using (DirectorySearcher dsSearcher = new DirectorySearcher()) { dsSearcher.Filter = "(&(objectClass=user) (cn=" + userName + "))" ; SearchResult result = dsSearcher.FindOne(); using (DirectoryEntry user = new DirectoryEntry(result.Path)) { user.Properties[ "jpegPhoto" ].Clear(); user.Properties[ "jpegPhoto" ].Add(data); user.CommitChanges(); } } } static Image GetUserPicture( string userName) { using (DirectorySearcher dsSearcher = new DirectorySearcher()) { dsSearcher.Filter = "(&(objectClass=user) (cn=" + userName + "))" ; SearchResult result = dsSearcher.FindOne(); using (DirectoryEntry user = new DirectoryEntry(result.Path)) { byte [] data = user.Properties[ "jpegPhoto" ].Value as byte []; if (data != null ) { using (MemoryStream s = new MemoryStream(data)) { return Bitmap.FromStream(s); } } return null ; } } } |
[Solution II]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | using System; using System.DirectoryServices; using System.Collections; using System.IO; public class ADPhoto { public void Set() { try { de.Username = "username" ; de.Password = "password" ; var forceAuth = de.NativeObject; var fs = new FileStream( "path\\photo.jpg" , FileMode.Open); var br = new BinaryReader(fs); br.BaseStream.Seek(0, SeekOrigin.Begin); byte [] ba = new byte [br.BaseStream.Length]; ba = br.ReadBytes(( int )br.BaseStream.Length); de.Properties[ "jpegPhoto" ].Insert(0, ba); de.CommitChanges(); } catch (Exception ex) { Console.WriteLine(ex.Message); } } public Stream Get() { var fs = new MemoryStream(); try { de.Username = "username" ; de.Password = "password" ; var forceAuth = de.NativeObject; var wr = new BinaryWriter(fs); byte [] bb = ( byte [])de.Properties[ "jpegPhoto" ][0]; wr.Write(bb); wr.Close(); } catch (Exception e) { Console.WriteLine(e.Message); } return fs; } } |
Designed by sketchbooks.co.kr / sketchbook5 board skin
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5