C#修改AD賬號及密碼


在使用AD域環境搭建的賬號系統修改密碼的時候比較麻煩一般需要管理員在域環境去進行對用戶的密碼進行修改。

以下就是用來查詢和修改AD域密碼的方法。

 1         /// <summary>
 2         /// AD賬戶查詢
 3         /// </summary>
 4         /// <param name="Domain"></param>
 5         /// <param name="UserAccount"></param>
 6         /// <param name="UserPassWord"></param>
 7         /// <returns></returns>
 8         private static string CheckAccount(string Domain, string UserAccount, string UserPassWord)
 9         {
10             string ReturnValue = string.Empty;
11             try
12             {
13                 //throw new InvalidPluginExecutionException(Domain + "|==|" + UserAccount + "|==|" + UserPassWord);
14                 DirectoryEntry entry = new DirectoryEntry("LDAP://" + Domain, UserAccount, UserPassWord, AuthenticationTypes.Secure);
15                 DirectorySearcher mySearcher = new DirectorySearcher(entry);
16                 mySearcher.Filter = ("(&(objectClass=user)(sAMAccountName=" + UserAccount + "))");
17                 SearchResult searchResult = mySearcher.FindOne();
18                 if (searchResult != null)
19                 {
20                     ReturnValue = "1";
21                 }
22             }
23             catch (Exception ex)
24             {
25                 ReturnValue = "賬號有誤:" + ex.Message;
26             }
27             return ReturnValue;
28         }
View Code
/// <summary>
        /// 修改AD域密碼
        /// </summary>
        /// <param name="Domain"></param>
        /// <param name="AdministratorAccount">管理員賬號</param>
        /// <param name="UserAccount">待修改密碼賬戶</param>
        /// <param name="AdministratorPassWord">管理員賬戶密碼</param>
        /// <param name="UserNewPassWord">新用戶新密碼</param>
        /// <param name="User_ConfirmPassword">新用戶新密碼確認</param>
        /// <returns></returns>
        private static string UpdateADAccount(string Domain, string AdministratorAccount, string UserAccount, string AdministratorPassWord, string UserNewPassWord, string User_ConfirmPassword)
        {
            //反饋內容、
            string ReturnString = string.Empty;
            if (UserNewPassWord == User_ConfirmPassword)
            {
                try
                {
                    DirectoryEntry entry = new DirectoryEntry("LDAP://" + Domain, AdministratorAccount, AdministratorPassWord, AuthenticationTypes.Secure);
                    DirectorySearcher mySearcher = new DirectorySearcher(entry);
                    mySearcher.Filter = ("(&(objectClass=user)(sAMAccountName=" + UserAccount + "))");
                    SearchResult searchResult = mySearcher.FindOne();
                    DirectoryEntry userEntry = searchResult.GetDirectoryEntry();
                    userEntry.Invoke("SetPassword", new object[] { UserNewPassWord });
                    ReturnString = "修改密碼成功!!";
                }
                catch (Exception ex)
                {
                    ReturnString = "修改密碼出錯!!問題可能是:" + ex.Message;
                }
            }
            else
            {
                ReturnString = "兩次密碼輸入不一致";
            }

            return ReturnString;
        }
View Code

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM