Difficult one...Active Directory + XML...

Posted on 2007-03-20
Last Modified: 2013-11-07
I read from AD and The CN (commonName) has a property that if i get its value
i get it in XML format.
I'm lookin for some way to enter the nodes and retrieve the value.
My code (to get other properties valus) are:
DirectoryEntry root = new DirectoryEntry(
              "User", "Password", AuthenticationTypes.ServerBind);

            DirectorySearcher search = new DirectorySearcher(root);
            search.Filter = "(&(objectClass=user))";
            SearchResult result;
            SearchResultCollection resultCol = search.FindAll();
            string[] allUsers = new string[resultCol.Count];
            if (resultCol != null)
                     for (int counter = 0; counter < resultCol.Count; counter++)
                    result = resultCol[counter];
                    if (result.Properties.Contains("ID"))
                        allUsers[counter] = ((string)result.Properties["ID"][0]);                                      
                        Console.WriteLine("Value : " + allUsers[counter]);
and i get all the values of the ID propert.
Now, there is a property - which its value is in XML :
   <way> SMS </way>
The property name is : " Delivery ".
(if i try to retrieve Delivery value - i get an XML result.
I need to get only the value ---  SMS
Is it possible?
Question by:udir
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
LVL 16

Accepted Solution

jimbobmcgee earned 500 total points
ID: 18759644
Does it always return valid XML?  And does it return it as a string?
If so, something like:

    // ...
    object deliveryValue = result.Properties["Delivery"];
    string wayValue = null;
    if (deliveryValue != null)
        XmlDocument xml = new XmlDocument();
        XmlNode wayNode = xml.SelectSingleNode("//names/way");
        if (wayNode != null) wayValue = wayNode.Value;
    // ...



Author Comment

ID: 18762300
Thanks for the reply.
It looks like the right way  (:
the problem is that i get nulls.
(i also changed the line to - object deliveryValue = ((string)result.Properties["ladpcInfodelivery"][0]);  )

Maybe the single Node Method has a wrong path?
the real pass that i wrote in the code in order to get to the Node is : (above i just gave an example)
XmlNode Nodename = xml.SelectSingleNode("//ArrayofApp/App/Name/Modules/Module/Name/DeliveryMethods/DeliveryMethod/Name");
and the XML looks like this (when i get the property Value)
Value : <ArrayOfApp>

Am i missing somthing?

Author Comment

ID: 18762303
Oh, and i need to get the only the Name value - " EMail " 

Author Comment

ID: 18762624
or SMS

Author Comment

ID: 18763015
OK, let me sumerize the problem so far:
1)  If i write as you wrote :  object deliveryValue = result.Properties["Delivery"];
      i get an error :  Data at the root level is invalid. Line 1, position 1
      at the line :  xml.LoadXml(deliveryValue.ToString());
 (which i understand is becuase the property return not a valid XML but a string (as you can see in the file above - it really begins with " Value : <ArrayOfApp>...........

2)  If i write as I wrote :  object deliveryValue = ((string)result.Properties["ladpcInfodelivery"][0]);
      i get nulls - " wayNode " is null (maybe somthing with the root)

How can it be solved (dosn't metter which way)

Featured Post

Resolve Critical IT Incidents Fast

If your data, services or processes become compromised, your organization can suffer damage in just minutes and how fast you communicate during a major IT incident is everything. Learn how to immediately identify incidents & best practices to resolve them quickly and effectively.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Pdf not loading 2 40
Updating Printer Details in VB.Net 16 43
How to get the range for the percentage from user input. 4 26
Manage big list of parameter list 8 25
Parsing a CSV file is a task that we are confronted with regularly, and although there are a vast number of means to do this, as a newbie, the field can be confusing and the tools can seem complex. A simple solution to parsing a customized CSV fi…
Real-time is more about the business, not the technology. In day-to-day life, to make real-time decisions like buying or investing, business needs the latest information(e.g. Gold Rate/Stock Rate). Unlike traditional days, you need not wait for a fe…
With Secure Portal Encryption, the recipient is sent a link to their email address directing them to the email laundry delivery page. From there, the recipient will be required to enter a user name and password to enter the page. Once the recipient …
In an interesting question ( here at Experts Exchange, a member asked how to split a single image into multiple images. The primary usage for this is to place many photographs on a flatbed scanner…

751 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question