Во-первых, я просмотрел большинство вопросов по SO, но ни один из них не кажется точно таким же. Здесьаналогичный вопрос, но не совсем тот же. В моем случае я создаю PrincipalContext как таковой:
Dim pctx As PrincipalContext = New PrincipalContext(ContextType.Domain, fullyqualifieddomain, container, ADUserID, ADPassword)
If pctx.ValidateCredentials(userName, password) Then
ADUserID — это учетная запись службы.
Этот метод работает, но занимает более 6-10 секунд.
Я также пытался напрямую получить базовую запись каталога и привязку. Это намного быстрее и работает на моей машине (которая находится вне домена), но не на веб-сервере (который находится внутри домена). Он не работает при вызове DirectoryEntry.NativeObject. Я не знаю почему. К сожалению, я нахожусь в ситуации, когда единственный работающий способ слишком медленный, чтобы быть осуществимым. Есть ли способ ускорить это?
Заранее спасибо!