尝试验证域凭据时,服务器无法处理目录请求

时间:2018-12-18 18:51:42

标签: c# powershell active-directory ldap windows-server

我们有一个Windows Server 2012 R2 OS上的IIS中运行的MVC应用程序,该应用程序使用域帐户来验证用户访问权限。这适用于除一个客户设置以外的大多数服务器。在PrincipalContext.ValidateCredentials期间获得通用的“服务器无法处理目录请求”。 IIS应用程序池使用对本地服务器具有管理员权限的域用户来执行所有事务。

为缩小导致问题的原因,我们已移植代码到winforms应用程序和powershell脚本。我们以应用程序池中使用的域用户身份登录到计算机,并运行了这两个程序。两者都返回了相同的错误。

但是,当我们使用域管理员登录到服务器时,不再引发异常,并且我们可以针对AD进行验证。

我们只想知道是什么导致了这种现象。任何帮助将不胜感激。

下面是我们制作的powershell脚本:

package com.stackoverflow.q53737175;

import static org.junit.Assert.*;

import org.junit.ClassRule;
import org.junit.Rule;
import org.junit.Test;
import org.springframework.beans.factory.FactoryBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.config.AbstractFactoryBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.test.context.junit4.rules.SpringClassRule;
import org.springframework.test.context.junit4.rules.SpringMethodRule;

import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;

@SuppressWarnings("javadoc")
public class Answer {

    /** The Constant SPRING_CLASS_RULE. */
    @ClassRule
    public static final SpringClassRule SPRING_CLASS_RULE = new SpringClassRule();

    /** The spring method rule. */
    @Rule
    public final SpringMethodRule springMethodRule = new SpringMethodRule();

    @Autowired
    MyClass myClass;

    @Test
    public void test() {
        assertNotNull(this.myClass);
    }

    @Configuration
    static class SpringConfig {

        @Bean
        public FactoryBean<MyClass> myClass() {

            return new AbstractFactoryBean<MyClass>() {

                @Override
                public Class<?> getObjectType() {

                    return MyClass.class;
                }

                @Override
                protected MyClass createInstance() throws Exception {

                    return new MyClass(MyClassDependency.create());
                }

            };
        }
    }

    @NoArgsConstructor
    @AllArgsConstructor
    static class MyClass {

        @Autowired
        private MyClassDependency dependency;
    }

    static class MyClassDependency {
        public static MyClassDependency create() {
            return new MyClassDependency();
        }
    }
}

App Pool Configurations

0 个答案:

没有答案