我們有項目啓動過程中與Active Directory的情況:用戶身份驗證在Active Directory中 - 在Windows Server 2012 R2
環境信息:Windows Server 2012中R2 64: 具有主Active Directory服務器中央服務器IP地址:192.168.1.10
具有隻讀Active Directory服務器的Office服務器:Windows Server 2012 R2 64位IP地址:192.168.50.10(此Active Directory複製用戶&來自中央服務器的工作站信息)。兩臺服務器通過DSL網絡連接。
我們的C#應用程序在辦公室網絡上運行,並且Operator PC(Windows 7 64位)加入到辦公室的域中。它必須使用以下代碼從Office Server中的Active Directory驗證用戶身份。
using (PrincipalContext pc = new PrincipalContext(ContextType.Domain, "mydomain.com"))
{
// validate the credentials
bool isValid = pc.ValidateCredentials("username", "password");
Log("Create principal context done");
}
問題是我們幾乎每一次出現以下錯誤,我們嘗試運行這段代碼:
- 的服務器不可操作
- 服務器無法聯繫
- LDAP服務器不可用
如果此代碼工作,則需要大約1分鐘才能完成。 注意:在我們的開發環境(具有相同IP範圍10.0.0.的LAN網絡)中,此代碼絕不會失敗。
有什麼建議嗎?
PrincipalContext是否可能選擇一個不在其他站點上的域,或者它可能不是可路由的域?你的網站和服務配置是否正確?您可以嘗試使用PrincipalContext(ContextType,String,String)構造函數,並將它傳遞給要連接的特定DC並查看問題是否消失。 – Sam