SiteExperts.com Logo Home | Community | Developer's Paradise
User Groups | Site Tools | Site Information | Search
 Main Menu
 Forums
SiteExperts.com Forums
All Discussions

SiteExperts Feedback
The Lounge
Dynamic HTML
Site Design/ Critiques
HTML and CSS
XML Technologies
The Wireless Internet
Internet Explorer
Microsoft .NET
The Server
Technical Support

Sponsored Links

User Groups : Forums : SiteExperts : Microsoft .NET :

Previous DiscussionNext Discussion
 • object ret = usr.Invoke("SetPassword", userPassword); // is taking around

Hi All,
We are able to create new user successfully on the active directory but the SetPassword method is taking around 1.5 minutes to complete the process. Below is the code of the snippet of SetPassword. Is there any better approach to set the password of new user?
    #region SetPassword
    /// <summary>
    /// This function is used to set user password
    /// </summary>
    /// <param name="path"></param>
    /// <param name="userPassword"></param>
    /// <remarks>
   
  /// </remarks>
    internal static void SetPassword(string path, string userPassword)
    {
        if (_logger.IsDebugEnabled)
            _logger.Debug("ADHelper.cs : Enter SetPassword");

        try
        {
            using (DirectoryEntry usr = GetDirectoryEntry(path))
            {
                object ret = usr.Invoke("SetPassword", userPassword);
                usr.CommitChanges();
                usr.Close();
            }

            if (_logger.IsDebugEnabled)
                _logger.Debug("ADHelper.cs : Exit SetPassword");
        }
        catch (Exception ex)
        {
            if (_logger.IsErrorEnabled)
                _logger.Error("ADHelper.cs : Exception occurred in SetPassword. Message: ", ex);
           
            throw ex;
        }
    }

    #endregion
Here is our production environment type.
•    IIS 7
•    ASP.NET 3.5 (C#)
•    Active Directory
•    Windows Server 2008 R2


Add user snippet
#region AddUser

    /// <summary>
    /// This function is used to add user to active directory
    /// </summary>
    /// <param name="adPath">Active Directory</param>
    /// <returns>directory entry object</returns>
    /// <remarks>
    /// </remarks>
    public static void AddUser(ADUser adUser)
    {
        if (_logger.IsDebugEnabled)
            _logger.Debug("ADHelper.cs : Enter AddUser");

        // Local variables
        DirectoryEntry oDE = null;
        DirectoryEntry oDENewUser = null;
        DirectoryEntries oDEs = null;

        try
        {
            oDE = GetDirectoryEntry(GetADPath(Constants.EnvironmentType.PROD, adUser.UserType));

            // 1. Create user account
            oDEs = oDE.Children;
            oDENewUser = oDEs.Add(string.Format("{0}=", Constants.ADAttributes.CN) + adUser.UserName, "user");

            // 2. Set properties
            SetProperty(oDENewUser, Constants.ADAttributes.givenName, adUser.FirstName);
            SetProperty(oDENewUser, Constants.ADAttributes.sn, adUser.LastName);
            SetProperty(oDENewUser, Constants.ADAttributes.mail, adUser.Email);
            SetProperty(oDENewUser, Constants.ADAttributes.sAMAccountName, adUser.UserName);
            oDENewUser.CommitChanges();

            // 3. Set password
            SetPassword(oDENewUser.Path, adUser.Password);

            // 4. Enable account           
            EnableAccount(oDENewUser);

            oDENewUser.Close();
            oDE.Close();

            if (_logger.IsDebugEnabled)
                _logger.Debug("ADHelper.cs : Exit AddUser");
        }
        catch (Exception ex)
        {
            if (_logger.IsErrorEnabled)
                _logger.Error("ADHelper.cs : Exception occurred in AddUser. Message: ", ex);

            throw ex;
        }
        finally
        {
            if (oDENewUser != null)
            {
                oDENewUser.Dispose();
                oDENewUser = null;
            }

            if (oDEs != null)
            {
                oDEs = null;
            }

            if (oDE != null)
            {
                oDE.Dispose();
                oDE = null;
            }
        }
    }

    #endregion

THANKS IN ADVANCE!!!

 

Started By shrikant on Apr 12, 2011 at 9:43:37 AM

No Responses

To respond to a discussion, you must first logon.

If you are not registered, please register yourself to become a member of the SiteExperts.community.

User Name
Password
Copyright 1997-2004 InsideDHTML.com, LLC. All rights reserved.