2014-01-06 5 views
1

Active Directory 및 폼 인증을 사용하여 몇 개의 인트라넷 웹 사이트에 로그인합니다. 때때로 사용자가 로그인 할 때 예외가 발생합니다. 모든 예외 사항에 대한 이메일을 받았지만 지금까지 해결 방법을 모르는 유일한 예외였습니다. 나는 이것을 몇 주 동안 계속 연구했지만,이 문제를 해결하는 데 운이 없었습니다.LDAP를 사용하는 폼 인증 "서버를 사용할 수 없습니다"오류

출처 :
System.DirectoryServices.Protocols

날짜 및 시간 :
2014년 1월 6일은 오전 8시 37분

메시지 :
서버를 사용할 수없는 .

스택 추적 : System.Web.Security.ActiveDirectoryMembershipProvider.ValidateCredentials (문자열 이름에서 System.DirectoryServices.Protocols.LdapConnection.BindHelper (NetworkCredential newCredential, 부울 needSetCredential)
에서

, String password)
at System.Web.Security.ActiveDirectoryMembershipProvider.ValidateUserCore (문자열 사용자 이름, 문자열 암호)
System.Web.Security.ActiveDirectoryMembershipProvider.ValidateUser (문자열 사용자 이름, 문자열 암호) System.Web.UI.WebControls.Login.AuthenticateUsingMembershipProvider에서
에서(AuthenticateEventArgs 전자)
System.Web.UI.WebControls.Login에서 .AttemptLogin() 시스템에서 System.Web.UI.Control.RaiseBubbleEvent에서 System.Web.UI.WebControls.Login.OnBubbleEvent (개체 소스, EventArgs입니다 전자)
(오브젝트 소스,있는 EventArgs 인수)
에서
. Web.UI.Page.ProcessRequestMain (부울 includeStagesBeforeAsyncPoint, 부울 includeStagesAfterAsyncPoint)

사용자 :

브라우저 정보 :

브라우저 기능, 유형 = IE8, 이름 = IE 버전 = 8.0, 주요 버전 = 8, 부 버전 = 0, 플랫폼 = WinXP, 베타 = 거짓, 크롤러 = 거짓, AOL = 거짓, Win16 = 거짓, Win32 = 참, 프레임 지원 = True, 테이블 지원 = True, 쿠키 지원 = True, VBScript 지원 = 사실,

나는 개발 서버에이 오류를 복제 할 수없는 오전, 자바 스크립트 = 3.0 지원 Java 애플릿이 True = 지원, 액티브 X = TRUE 제어 지원, 자바 스크립트 버전 = 1.5을 지원합니다. 그것은 예외를 던질 것이기 때문에 그것은 이상하다, 그 후에 그들은 잘 후에 로그인 할 수있다. 어떤 날에는이 예외를 전혀받지 못하고 다른 날에는 벽에 없습니다.이것이 프로덕션 서버에 문제가 될 수 있습니까? 아마도 설정이 누락되었거나 뭔가요? 나는이 일에 어떤 일이 벌어지고 있는지 정말로 모른다. 누구도이 경험이 있습니까?

이 내가

<add name="ADService" 
    connectionString="LDAP://domain/OU=users,DC=domaincontroller,DC=net" /> 

회원 바이더 web.config

연결 문자열에 연결하고있어

<membership defaultProvider="AspNetActiveDirectoryMembershipProvider"> 
     <providers> 
     <clear /> 
     <!--Membership provider for Active Directory--> 
     <add name="AspNetActiveDirectoryMembershipProvider" type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" 
      connectionStringName="ADService" attributeMapUsername="sAMAccountName" /> 
     </providers> 
    </membership> 

내가 무슨 일이 일어나고 있는지 확실하지 않다 방법이다. 어떤 도움을 주셔서 감사합니다!

업데이트 : 현재 Single Sign On을 포함하는 큰 릴리스를 수행 중입니다. 우리는 여전히 폼 인증과 Active Directory를 사용하고 있습니다. 우리는 새로운 프로덕션 서버를 설치했습니다. 아직 살지는 않았지만 일부 사람들은 그것에 접근 할 수 있습니다. 이 새로운 서버에서 이미 동일한 메시지를 받았습니다. 그것은 서버 2008 R2 표준이야. 정확하게 IIS 버전 7.5.7600.16385를 사용하고 있습니다. 이 예외는 나를 귀찮게하고 사용자에게 짜증나게합니다. 그것은 현재의 생산에서 항상 일어날 수는 없지만, 언젠가는 일어나지 않을 것입니다. (천천히 지내고 사람들이 웹 사이트를 사용하지 않기 때문에 확실하지 않습니다.) 그런 다음 언젠가는 미친 듯이 일어납니다. 약 15-20 개의 예외가 있습니다. (그 이상이 아니면) 여러 문제점을 조사했습니다. 다른 사람들도 비슷한 문제가 있지만 올바른 사용자 이름을 입력했지만 잘못된 암호를 입력하면 문제가 발생합니다. 잘못된 암호를 수백 번 입력하려고 시도했지만 결코 문제를 복제 할 수는 없습니다.

+0

소스 코드를 게시하고 실패한 경우 이메일을 보내는 try/catch를 포함 할 수 있습니까? –

+0

처리되지 않은 예외입니다. 응용 프로그램 오류로 전송 된 모든 전자 메일을 받았습니다. 나는 심지어 내가 제출 버튼에 하나를 넣었으므로 어디에서 시도 잡을 지 잘 모르겠다. – Humpy

+0

'

답변

2

안녕 내가 가진를 내 응용 프로그램에서이 문제.

그들은,이 날 미치게되었다 로그인 할 때 무작위로이 메시지를 얻을 것

사용자.

AD 서버 호스트 이름을 사용하는 대신 전체 Windows 이름과 포트를 제공하여이 문제를 해결했다고 생각합니다.

<add key="LDAPPath" value="LDAP://LDAPSERVER.be.ndl.OURDOMAIN.com:389/DC=be,DC=ndl,DC=OURDOMAIN,DC=com"/> 

이 정보가 도움이되기를 바랍니다.

+0

아직 포트 아이디어를 시도하지 않았습니다. 나는 안전한 항구이기 때문에 총을 636 번 줄 것이다. 최신 버전을 업로드하여 잘 작동합니다. – Humpy

+0

48 시간이 넘었으며이 오류 메시지가 통보되지 않았습니다. 나는 문제가 해결 된 것 같아! – Humpy

+0

좋은 소식입니다. 도움이 되었기 때문에 기쁩니다. – SoroTrestal

0

정말로 생각해 보았습니다. 실제로 문제가 있는지는 모르겠지만 시도해보십시오.

Active Directory의 Users 컨테이너는 일반 컨테이너 (과 그는 CN=로 시작된다 -하지 OU=로 시작 (조직 구성 단위) - 그래서이 설정 시도 :

connectionString="LDAP://domain/CN=users,DC=domaincontroller,DC=net" 
+0

나는 다음 릴리스에서 그걸 줄 것이다. 아이디어를 가져 주셔서 감사합니다. – Humpy

+0

작동하지 않을 것 같습니다. 우리는 OU = stores를 사용하고 연결 문자열은 해당 OU의 모든 사용자를 검색합니다 (AD가 설정된 방식, 각 저장소에는 사용자가있는 자체 OU가 있음). 아이디어를 가져 주셔서 감사합니다! – Humpy

0

방금 ​​같은 문제가있었습니다. 나는 DNS 서버에 뛰어 들어이 경고가 나는 문제를 가지고 당시 기록이 있었다 발견 :

서버가 Active Directory 도메인 서비스를 기다리는되는 DNS는 (AD는 DS) 는 초기 동기화 있다는 신호를 디렉토리의 이 완료되었습니다. DNS 서버 서비스는 동기화가 완료 될 때까지 시작할 수 없습니다. 중요 DNS 데이터가 아직이 도메인 컨트롤러에 복제 된 이 아니기 때문입니다.AD DS 이벤트 로그의 이벤트가 DNS 이름 확인에 문제가 있음을 나타내면 이 도메인의 다른 DNS 서버의 IP 주소를이 컴퓨터의 인터넷 프로토콜 속성에있는 DNS 서버 목록에 추가하는 것이 좋습니다. 이 이벤트는 AD DS에 초기 동기화가 성공적으로 완료되었음을 알리는 이있을 때까지 2 분마다 기록됩니다.

문제 해결을 마친 후 AD 자격 증명을 사용하여 ASP.NET 웹 응용 프로그램에 로그인 할 수있었습니다. Active Directory 도메인 서비스 초기 동기화가 완료 될 때까지 DNS 서버를 시작할 수 없다는 문제가 있습니다.