我正在使用C#开发需要针对Active Directory进行身份验证的应用程序。我有Windows 7,无法在本地安装Active Directory。我无权访问具有Active Directory的现有服务器(通过连接到VPN的十个步骤除外)。我宁愿不创建运行Windows Server的虚拟机。有没有可能在内存中运行并拦截AD调用以返回伪造数据的东西?如果它不存在,从理论上讲,将它拉下来需要什么呢?
答案 0 :(得分:1)
您可以使用依赖注入,然后在单元测试中模拟出Active Directory调用。
答案 1 :(得分:1)
我认为您最好的解决方案是安装虚拟服务器进行开发。我不建议您将工作站加入工作站内的域,但可以使用远程调试器来调试虚拟机内的应用程序。只需在guest虚拟机上创建网络共享,然后配置调试项目以将构建输出到此目录中。然后在“调试”选项卡或项目属性中指定“使用远程计算机”,您就可以在那里进行调试。您可能需要使用与主机相同的名称和密码创建本地管理员帐户,以启用无缝身份验证。在这种配置中,虚拟客户系统中的调试与本地调试没有太大区别。
如果您只需要进行单元测试这样的事情,或者需要从AD解除绑定以进行单元测试,那么关于模拟的另一个答案就是逻辑方法。
我想创建一个完整的虚假AD实现是毫无意义的。
答案 2 :(得分:0)
您还可以将Azure上托管的AD服务器用于测试和开发目的:
答案 3 :(得分:0)
我在GitHub上找到了ldap-test-server项目,并在Docker容器中成功启动了该项目。然后,我可以通过https://directory.apache.org/studio/
列出用户