none
C# AD驗證問題 RRS feed

  • 問題

  • AD環境-分兩個site  一個Domain:abc.com.tw
    site1:192.168.11.5(Role:GC+DC),192.168.11.6(Role:DC)
    site2:192.168.11.10(Role:DC)
    小弟使用VS2008(小弟電腦沒加入Domain)
    問題1:利用ADSI來驗證AD  想判斷Client登入AD會從那個SITE取得AD資訊???(不知道這方案有那位大大可以給實做建議)
    問題2:小弟實做驗證AD  有時可以驗證成功  但有時無法驗證(跳出無法操作伺服器)???
               
                DirectoryEntry entry = new DirectoryEntry(LDAP://abc.com.tw);
                entry.AuthenticationType = AuthenticationTypes.Secure;
                entry.Username = userName;
                entry.Password = userPassword;
                string nativeObject = entry.NativeObject.ToString();-->這行有錯誤  即跳出  無法操作伺服器  訊息
    讓小弟百思不得其解
    感謝
    2009年5月12日 上午 11:46

解答

  • 這應與 AD 的 DNS 設計有關,ADSI API 也只是遵從 AD 的架構來傳送驗證字串。
    如果 SITE1 中的 DC 無法處理驗證,才會轉送到 SITE2,所以你應先與公司內架設 AD 的團隊詢問 DNS 的設法,才能判斷會造成這些的原因是什麼。
    不過這方面的問題則是屬於 IT 部份,請移駕 http://social.technet.microsoft.com/forums 詢問。
    小人物一枚。
    • 已標示為解答 ricoisme 2009年5月17日 上午 04:00
    2009年5月13日 下午 01:35
    版主

所有回覆

  • 1. 依照 Active Directory 的架構,作業系統會以最近的那一個 DC 做驗證,除非最近的 DC 掛掉,才會被轉送到成本最低的 DC 做驗證。
    2. 建議可直接取用 AD 中的一個屬性來判斷是否登入成功即可(可存取即為登入成功,可捕捉例外,視為失敗)。
    小人物一枚。
    2009年5月12日 下午 02:52
    版主
  • 1. 依照 Active Directory 的架構,作業系統會以最近的那一個 DC 做驗證,除非最近的 DC 掛掉,才會被轉送到成本最低的 DC 做驗證。
    2. 建議可直接取用 AD 中的一個屬性來判斷是否登入成功即可(可存取即為登入成功,可捕捉例外,視為失敗)。
    小人物一枚。

    大大再請教
    1.小弟知道會找最近的DC驗證  但小弟想驗證  所以想說利用ADSI 去判斷CLIENT登入AD會去找哪台來驗證  這方面有辦法達到嗎??
    即CLENT(未加入DOMAIN) 執行AD驗證小程式==>成功後返回AD相關資訊  資訊中即包含AD回應來源(如192.168.11.6.abc.com.tw)
    這樣小弟就知道CLIENT都跑哪台DC或GC驗證了

    感謝
    2009年5月12日 下午 10:07
  • 那還不如一開始就指定要用哪台 AD DC 驗證....
    我所知好像沒有這種回傳的訊息。


    小人物一枚。
    2009年5月13日 上午 04:16
    版主
  • 那還不如一開始就指定要用哪台 AD DC 驗證....
    我所知好像沒有這種回傳的訊息。


    小人物一枚。

    跟大大說明一下
    不能寫死在CODE   因為AD環境為了balance 所以無法寫死  所以小弟的LDAP://abc.com.tw(只能寫ROOTDES)
    如果指定了某一台DC或GC  那台剛好掛了  將無法從別台DC驗證登入
    由於AD環境 分兩個SITE   我希望程式只從SITE1進入驗證(SITE1有GC+DC)
    但現在出現的情形  發現程式送出LDAP字串後  驗證會以RR的方式來訪問整個AD環境(即SITE1:GC(SERVER A)->DC(SERVER B)->SITE2:DC(SERVER C)以此循環)所以有時會跑到SITE2(有一台DC)?? 
    這讓我感到很頭痛??
    我在努力想想
    感謝大大指導討論
    2009年5月13日 下午 12:44
  • 這應與 AD 的 DNS 設計有關,ADSI API 也只是遵從 AD 的架構來傳送驗證字串。
    如果 SITE1 中的 DC 無法處理驗證,才會轉送到 SITE2,所以你應先與公司內架設 AD 的團隊詢問 DNS 的設法,才能判斷會造成這些的原因是什麼。
    不過這方面的問題則是屬於 IT 部份,請移駕 http://social.technet.microsoft.com/forums 詢問。
    小人物一枚。
    • 已標示為解答 ricoisme 2009年5月17日 上午 04:00
    2009年5月13日 下午 01:35
    版主