2012-08-24 5 views
2

ActiveDirectoryMembershipProvider 클래스를 사용하여 보안 LDAP 시스템에 대해 사용자를 생성/업데이트/인증하는 웹 응용 프로그램이 있습니다. 모든 항목이 정상적으로 작동하는 것처럼 보입니다. 단, "서버를 사용할 수 없습니다."라는 메시지가 임의로 표시됩니다. 예외. 사용자가이 오류를 수신하면 즉시 다시 시도 할 수 있으며 작동합니다.ActiveDirectoryMembershipProvider 무작위 오류

우리 네트워크 사용자가 트래픽을 모니터링하도록했고 Membership 개체가 LDAP에 2 개의 보안 TCP 연결을 생성한다는 것을 알아 냈습니다 (우리는 con1 및 con2라고 부릅니다). 두 연결은 열린 상태로 표시되지만 con2만이 통신을 수신합니다. 결국 con1은 LDAP 서버로부터 close 요청을 보낼 것이다. 이 요청은 임의의 간격으로 발생하는 것으로 보입니다. 오류가 표시되면 오류가 발생하기 직전에 con1 닫기 요청이 표시됩니다 (밀리 초 전에).

MSDN 문서를 읽었으므로 왜 2 개의 연결이 열리고 왜 닫히지 않거나 여전히 실행 중이라는 알림 메시지를 보내지 않는지 알 수 없습니다. 누구든지이 답변을 알고 있습니까?

두 번째 질문은 내가이 문제를 해결하기 위해 무엇을 할 수 있는가하는 것입니다. 나는 내가 검증을 다시 요청할 수 있다는 것을 안다. 그러나 나는 내가해야 할 것이라고 기대하지 않을 것이다. 다음은 예제 코드입니다.

구성

<add name="ADConnectionString" connectionString="LDAP://FullyQualifiedServerName:636/OU=XXX,DC=XXX,DC=XXX" /> 
<add name="ADMembershipProvider"  
type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" 
connectionStringName="ADConnectionString" 
connectionUsername="CN=XXX,OU=XXX,DC=XXX,DC=XXX" connectionPassword="XXXXXX" 
connectionProtection="Secure" enableSearchMethods="true" enablePasswordReset="true" 
requiresQuestionAndAnswer="true" applicationName="XXXX" 
description="Default AD connection" requiresUniqueEmail="false" 
clientSearchTimeout="30" serverSearchTimeout="30" attributeMapPasswordQuestion="xxx" 
attributeMapPasswordAnswer="xxxx" attributeMapFailedPasswordAnswerCount="xxxx" 
attributeMapFailedPasswordAnswerTime="xxxx" 
attributeMapFailedPasswordAnswerLockoutTime="xxxx" attributeMapEmail="mail" 
attributeMapUsername="userPrincipalName" maxInvalidPasswordAttempts="7" 
passwordAttemptWindow="1" passwordAnswerAttemptLockoutDuration="5" 
minRequiredPasswordLength="8" minRequiredNonalphanumericCharacters="0" 
passwordStrengthRegularExpression="^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.*\s).{8,20}$" /> 

코드 환경

return Membership.Providers["ADMembershipProvider"].ValidateUser(userName, userPassword); 

: 윈도우 서버 2008, IIS 7.0을, 우리가이기 때문에 우리는 현재 매우 낮은 볼륨을 제공하는 .NET 4.0 주 작은 베타 창.

+0

댓글 및 도달 범위 만 PDC와 BCD가 정상적으로 작동합니까? PDC와 BDC가 동기화되어 있습니까? PCD와 BDC가 동기화되지 않은 경우 Citrix에서 비슷한 증상이 나타납니다. – Paparazzi

답변

0

이것은 ActiveDirectoryMembershipProvider 클래스의 버그 인 것으로 보입니다. Common.LdapAuth.LdapAuthProvider 클래스로 전환하여 사용자를 인증했습니다.

관련 문제