The previous post (http://weblogs.asp.net/btrst4/archive/2004/08/30/222629.aspx) on this topic showed you how to import picture data into AD. This post shows you how to retieve the data and write it back out to a file. It might be more realistic to retrieve the data from AD and display it in a portal. I'm sure someone could adapt this code to do this quite easily. If you know how, please post or email me.
Basically, this is the reverse of the previous code using System.DirectoryServices then System.IO.
Here is the code:Imports System.IOImports System.DirectoryServices
Module Module1 Sub Main() Dim outFile As System.IO.FileStream Dim binaryData() As Byte Dim strFileName As String
strFileName = "c:\PictureExportedFromAD.jpg"
'Connect to AD Dim strDN As String = "CN=Joe User,OU=Employees,DC=company,DC=local" Dim strDCName As String = "DC-01" Dim myUser As New System.DirectoryServices.DirectoryEntry("LDAP://" & strDCName & "/" & strDN)
'Retrieve picture into byte array Dim byteArray As Byte() byteArray = myUser.Properties("jpegPhoto").Value myUser.Close()
'Open file to export (delete if exists) If File.Exists(strFileName) Then File.Delete(strFileName) End If
outFile = New System.io.FileStream(strFileName, FileMode.CreateNew, FileAccess.ReadWrite)
'Loop through bytes and write to file Dim singleByte As Byte
For Each singleByte In byteArray outFile.WriteByte(singleByte) Next outFile.Close() End SubEnd Module