Nếu có ai có câu chuyện tương tự, vui lòng gửi chi tiết bên dưới!Tại sao xác thực đối với LDAP với DirectoryEntry liên tục ném COMException (0x8007203A): "Máy chủ không hoạt động"?
Tôi đang xây dựng trang web ASP.NET cần hỗ trợ xác thực chống lại LDAP.
Trên cửa sổ, LDAP auth có thể được thực hiện thông qua Active Directory (Tôi không có chuyên gia, nhưng AD dường như chỉ đơn giản là một hương vị đặc biệt của ldap). Tôi không kiểm soát các máy chủ AD và/hoặc LDAP.
Tôi đã thử nhiều phương pháp xác thực, nhưng tôi đã giải quyết trên sử dụng một đơn DirectoryEntry
mỗi lần xác thực:
using (DirectoryEntry de = new DirectoryEntry(ldapPath, ldapUsername, password, AuthenticationTypes.ServerBind)) {
try {
// Bind to the native AdsObject to force authentication.
object obj = de.NativeObject;//not IDisposable
} catch(...
Lấy các NativeObject gây ra một COMException
nếu bất cứ điều gì nào gặp khó khăn, ví dụ nếu xác thực thất bại, ngoại lệ là một cái gì đó như "Đăng nhập thất bại: không biết tên người dùng hoặc mật khẩu xấu", và nếu máy chủ ldap là không thể truy cập hoặc lần ra, một cái gì đó như "Máy chủ không hoạt động."
Công trình này, về cơ bản, nhưng sau số ngày thay đổi, luôn bắt đầu điều đầu tiên vào buổi sáng, chúng tôi nhận được "Máy chủ không hoạt động". cho đến khi IIS được khởi động lại. Điều này rõ ràng không phải là một giải pháp lâu dài tuyệt vời, nhưng như xa như tôi có thể nói với lỗi nằm với Com Object DirectoryEntry cơ bản - không phải là một cái gì đó dễ dàng để sửa chữa.
Thisproblemisn'tneworunknown. Một số người đã trải qua sự hỗ trợ của microsoft với kết quả hỗn hợp; về cơ bản các câu trả lời dường như đi xuống để "lấy đường dẫn ldap của bạn và tạo ra một vài lựa chọn thay thế tương đương và có thể một trong số đó sẽ hoạt động". Mỗi khi bạn cố gắng, hoặc tất nhiên, bạn sẽ không biết trong một vài ngày cho dù nó thực sự làm việc, và cho đến khi một giải pháp thực sự được tìm thấy, chúng tôi trở lại "khởi động lại các máy chủ windows mỗi đêm".
Như một sự khởi đầu, tôi đã cố gắng đường ldap theo định dạng
* "LDAP://server.uri:636"
* "LDAP://insecure.server.uri:389"
* "LDAP://server.uri:636/cn=username,ou=staff,o=myOrganisation,c=org"
Luôn có một tên người dùng với các mô hình sau:
* "cn=username,ou=staff,o=myOrganisation,c=org"
Tất cả những phương pháp làm việc ban đầu, nhưng thất bại sau một số ngày thay đổi (và bắt đầu làm việc sau khi thiết lập lại IIS). Máy chủ đang chạy IIS6 trên chiến thắng 2k3.
Nếu có ai khác gặp phải sự cố này, vui lòng đăng bài bên dưới và có thể chúng tôi sẽ tìm một mẫu để làm việc hoặc có đủ số ví dụ để thuyết phục microsoft sửa lỗi này.
Có thể lỗi này có liên quan đến chiến thắng tùy chọn phân nhóm 2K3 của - chúng tôi đã di cư đến một hệ thống máy chủ đơn không cụm, và vài ngày qua đã có vấn đề miễn phí. –
Điều gì đã được nhóm lại? Máy chủ đang chạy ứng dụng của bạn hoặc máy chủ đang chạy AD? –
Máy chủ đang chạy ứng dụng. Máy chủ LDAP thực sự là một máy không phải cửa sổ đang chạy ở đâu đó bên ngoài - tôi không chắc về cấu hình của nó. Ngoài ra, các vấn đề dường như xảy ra ngay cả đối với các kết nối UDP được tạo thủ công, cho thấy đây là một số điều cấp thấp. –