2012-01-27 1 views
2

오늘 이상한 것으로 나타났습니다. 나는 작업하고있는 프로젝트에서 이와 같은 코드를 가지고있다 :빈 문자열 또는 null을 DirectoryEntry 생성자에 전달

var directoryEntry =new DirectoryEntry(
    ConfigurationManager.AppSettings["path"], 
    ConfigurationManager.AppSettings["user"], 
    ConfigurationManager.AppSettings["password"] 
); 

이것은 클래스 라이브러리의 일부이다. 이 라이브러리를 다른 프로젝트에서 사용했을 때 응용 프로그램/사이트의 .config 파일에이 키를 정의하는 것을 잊었지만 여전히 작동했습니다.

이 생성자는 PrincipalContext 생성자 http://msdn.microsoft.com/en-us/library/bb298328.aspx과 비슷하게 작동합니다. 즉, null을 전달하면 현재 사용자의 자격 증명을 사용하지만 MSDN 설명서에서는 아무 것도 말하지 않습니다.

누구든지이를 확인하거나 거부 할 수 있습니까?

답변

0

이 코드 샘플은 예외를 throw하지 않지만 반드시 작동하고 있다는 것을 의미하지는 않습니다. DirectoryEntry 생성자는 전달 된 값의 인증 또는 유효성 검사를 수행하지 않습니다. 대신 서버에 쿼리를 만들기 위해 나중에 사용하려고하는 값만 저장합니다.

이 특정 코드는 빈 문자열을 던지거나 실패하지 않지만 서버에 바인딩하는 호출은 실패 할 가능성이 큽니다.