Accessing and Editing the Active Directory from C# – WPF

The What
I’m aware this might not be the best approach to tackle this, but I’m a fan of learning several things at the same time.

For this reason, I’m going to develop a Modular application in WPF, using the MVVM pattern, to access and edit the Active Directory.

The idea is that through the application you’ll be able to create new attributes for objects within the Active Directory, or new classes, define new object types, and also load modules (read: dlls) that will allow you to view these attributes the way you want to.

I’ll be providing links to other posts in order to go deeper into the different topics. This is a post that I’ll be updating as I do this, so bare with me and please feel free to leave feedback. Let me know if you are interested in this topic, or if you are interested in taking a look at something related to this.

Also, if you know/think something could be done better (probably there are 1000 better ways to do this), feel free to let me know. I’m in this for the knowledge :).

The Why
I’ve seen that a lot of people and companies asking how to add pictures to Active Directory users. Surprisingly, this is NOT SIMPLE, or at least not as straight-forward as I thought.

There are a few resources for this, but I was interested in learning how to do it, so lets share it with everyone.

Here’s one with some good links as well from the ITPro’s blog. The fact that we have the same wordpress theme is mere coincidence!

The How

First, to apply the MVVM Pattern, I am using Laurent Bugnion’s MVVM Light Toolkit. Very simple and easy to use and start applying the MVVM to decouple the user interface from the code and avoid using the code behind as much as possible.

A few ActiveDirectory resources that I’m finding very useful:

(Almost) Everything in Active Directory in C#
Searching the Directory
Search Filter Syntax
Quick List for C# Code Examples

Great WPF and MVVM resources:

Under construction 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *