Change Active Directory password using C#

 protected void Button1_Click(object sender, EventArgs e)
        {

            string usernamewithoutdomain;
            usernamewithoutdomain = txtUsername.Text;

            if (txtUsername.Text.Contains(@"\"))// split string
            {
                usernamewithoutdomain = txtUsername.Text.Substring(txtUsername.Text.LastIndexOf('\\') + 1);

            }

            ChangeMyPassword("domainname", usernamewithoutdomain, txtCurrentPassword.Text, txtNewPassword.Text);

        }
        public void ChangeMyPassword(string domainName, string userName, string currentPassword, string newPassword)
        {
            try
            {
                string ldapPath = LDapUrl;// directory path
                DirectoryEntry directionEntry = new DirectoryEntry(ldapPath, domainName + "\\" + userName, currentPassword);
                if (directionEntry != null)
                {
                    DirectorySearcher search = new DirectorySearcher(directionEntry);
                    search.Filter = "(SAMAccountName=" + userName + ")";
                    using (var context = new PrincipalContext(ContextType.Domain))
                    {
                        using (var user = UserPrincipal.FindByIdentity(context, IdentityType.SamAccountName, userName))
                        {
                            user.ChangePassword(currentPassword, newPassword);

                        }
                    }

                }
            }

            catch (Exception ex)
            { 
            }
            finally
            {
              
            }

        }

    }