Friday, June 24, 2011

Get the user Expire Time From Active Directory using User Name

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.DirectoryServices;
using Microsoft.VisualBasic;

namespace AD
{
    class Program
    {
        static public void Main(string[] args)
        {
            DirectoryEntry user = new DirectoryEntry("LDAP://CN=" + username + "," + " OU= Web Users,DC=SERVERNAME,DC=com", null, null, AuthenticationTypes.Secure);
            DateTime expires = DateTime.FromFileTime(GetInt64(user, "accountExpires"));
            string exp1 = expires.ToShortDateString();
            Console.WriteLine(exp1.ToString());
            string exp=expires.ToLongDateString();
            Console.WriteLine(exp.ToString());
            Console.WriteLine(expires.ToString());
            Console.ReadKey();
        }

        static string username = "testuser1";
       
        static public Int64 GetInt64(DirectoryEntry entry, string attr)
        {
            //we will use the marshaling behavior of
            //the searcher
            DirectorySearcher ds = new DirectorySearcher(
                entry,
                String.Format("({0}=*)", attr),
                new string[] { attr },
                SearchScope.Base
                );

            SearchResult sr = ds.FindOne();

            if (sr != null)
            {
                if (sr.Properties.Contains(attr))
                {
                    return (Int64)sr.Properties[attr][0];
                }
            }
            return -1;
        }

    }
}

Note: DC=SERVERNAME in this place please give you server name like 'myserver1'

No comments:

Post a Comment