Click here to monitor SSC
SQLServerCentral is supported by Red Gate Software Ltd.
 
Log in  ::  Register  ::  Not logged in
 
 
 

Get your AD information with .NET

.NET has a useful class called system.DirectoryServices to query LDAP such as Active Directory

Here is some example code to retrieve all the AD information for a user called FullName,

 

On a web site, your Active Directory Name can be found using

 

FullName = HttpContext.Current.Request.ServerVariables["AUTH_USER"];

 

(If you are not using AD then this will return a blank)

 

In this procedure we first write the results to a data table. we can then sort the results before appending them to a stringbuilder which is then return to the web page.

 

using System.DirectoryServices;

 

       public static String GetUserInfo(string Fullname)

        {

            DataTable UserInfo = new DataTable();

            UserInfo.Columns.Add("Name", typeof(string));

            UserInfo.Columns.Add("Info", typeof(string));

 

            System.Text.StringBuilder sb = new System.Text.StringBuilder();

 

            //extract the user name from DomainName

            string username = Fullname.Substring(Fullname.IndexOf("\\") + 1);

           

            //create a directorySearcher

            DirectorySearcher ds = new DirectorySearcher(new DirectoryEntry("LDAP://domain.net"));

           

            //filter the search to just the user name

            ds.Filter = "samaccountname=" + username;

            ds.PageSize = 1000;

            //use the findone function rather than the findall to return the user's data

            SearchResult sr = ds.FindOne();

 

            //loop through the search results properties inserting in to a data table

            foreach (string var in sr.Properties.PropertyNames)

            {

                UserInfo.Rows.Add(var, sr.Properties[var][0].ToString());

            }

            DataView dv = new DataView(UserInfo);

            dv.Sort = "Name";

 

            //write out the proprties in name order to the stringbuilder

            foreach (DataRowView drv in dv)

            {

                sb.AppendLine(string.Format("{0} : {1}", drv[0], drv[1]));

                sb.AppendLine("<BR>");

            }

            ds.Dispose();

            return sb.ToString();

        }

 



Comments

No comments.

Leave a Comment

Please register or log in to leave a comment.