none
如何透過ASP程式讓User可以修改Win2000 AD的帳號密碼? RRS feed

  • 問題

  • 請問各位:

     

    如何透過ASP程式,讓User可以修改Win2000 AD的帳號密碼呢?謝謝囉~~Smile

     

    2008年4月14日 上午 05:56

解答

  • 參考Windows內建的IISADMPWD
    2008年4月14日 下午 07:08
  • Hi,

     

    我寫過用ASP.NET版的AD管理界面,常用的管理工作都可以達到,以下是變更密碼的sample code,供你參考:

    //ChangeUserPassword - Change User Object Password
      static public void ChangeUserPassword (string username, string newPassword, string navigatePath, string adLoginName, string adLoginPassword)
      {
       // First, get a DE for the user
       DirectoryEntry userContainerDE =
        new DirectoryEntry (navigatePath, adLoginName, adLoginPassword);
       DirectorySearcher ds = new DirectorySearcher (userContainerDE);
       ds.Filter = "(sAMAccountName=" + username + ")";
       ds.PropertiesToLoad.Add ("cn");
       SearchResult r = ds.FindOne();
       DirectoryEntry theUserDE = new DirectoryEntry (r.Path, adLoginName, adLoginPassword);

       /*
       // Now update the property setting
       if (theUserDE.Properties[UserProperty.Password].Count == 0)
       {
        theUserDE.Properties[UserProperty.Password].Add (newPassword);
       }
       else
       {
        theUserDE.Properties[UserProperty.Password][0] = newPassword;
       }
       theUserDE.CommitChanges();
       */

       // Now update the password
       theUserDE.Invoke ("SetPassword", new object[] {newPassword});
       theUserDE.CommitChanges();
      }

     

    Regards,

    Rico

    2008年4月18日 下午 03:00

所有回覆

  • 可能導致安全性漏洞
    不建議用ASP這麼做

    如果真的要用Web-AP的介面去管理AD的話
    建議寫成ASP.NET

    參考書籍
    http://www.flag.com.tw/book/5105.asp?bokno=FT470
    2008年4月14日 上午 09:53
  • 參考Windows內建的IISADMPWD
    2008年4月14日 下午 07:08
  •  Eric Tsai 寫信:
    參考Windows內建的IISADMPWD

     

    謝謝您提供的資料,但是裡面用的是IIS 6.0,我記得Win2000裡面的應該是IIS 5.0,

    這樣的話還能用這個方法嗎?謝謝囉~~

    2008年4月15日 上午 02:20
  • Win2000一樣有IISADMPWD那個目錄,但是不是ASP做的。

    Change password functionality replaced with Active Server Pages

    2008年4月15日 上午 08:05
  • 請問這個可以用asp.net2.0去管理AD帳號嗎??謝謝!

    2008年4月15日 上午 09:46
  • Hi,

     

    我寫過用ASP.NET版的AD管理界面,常用的管理工作都可以達到,以下是變更密碼的sample code,供你參考:

    //ChangeUserPassword - Change User Object Password
      static public void ChangeUserPassword (string username, string newPassword, string navigatePath, string adLoginName, string adLoginPassword)
      {
       // First, get a DE for the user
       DirectoryEntry userContainerDE =
        new DirectoryEntry (navigatePath, adLoginName, adLoginPassword);
       DirectorySearcher ds = new DirectorySearcher (userContainerDE);
       ds.Filter = "(sAMAccountName=" + username + ")";
       ds.PropertiesToLoad.Add ("cn");
       SearchResult r = ds.FindOne();
       DirectoryEntry theUserDE = new DirectoryEntry (r.Path, adLoginName, adLoginPassword);

       /*
       // Now update the property setting
       if (theUserDE.Properties[UserProperty.Password].Count == 0)
       {
        theUserDE.Properties[UserProperty.Password].Add (newPassword);
       }
       else
       {
        theUserDE.Properties[UserProperty.Password][0] = newPassword;
       }
       theUserDE.CommitChanges();
       */

       // Now update the password
       theUserDE.Invoke ("SetPassword", new object[] {newPassword});
       theUserDE.CommitChanges();
      }

     

    Regards,

    Rico

    2008年4月18日 下午 03:00
  • 我目前只會參考文件試出Use Forms Authentication with Active Directory in ASP.NET 2.0

    請問是否可提供一些其他的功能如新增、查詢AD帳號資訊...謝謝!

    2008年4月20日 上午 09:04