我正在开发一个Intranet应用程序,该应用程序使用AD进行Windows身份验证以及员工和组织信息。该应用程序位于c#,.NET MVC4中。我使用IIS Express和SQL Server Express进行开发。员工由委托人的Guid引用,例如记录的创建者将被引用为AuthorId,然后包含表示来自AD的Guid的字符串。不同的用户根据他们的组成员身份查看不同的视图,例如,相同的网址管理员可以在编辑器视图中编辑类别,但用户只能在显示视图中看到该类别。
问题: - 如果不必要地访问域AD,我如何测试查询AD的代码? - 如何在不更改域AD的情况下最好地假设不同的用户访问权限?
我在考虑使用ADAM进行测试。但后来我的问题是: - 我应该如何配置以及使用此本地ADAM服务器进行身份验证? - ADAM安装可以在我的第二台开发机器上,还是在本地? - 在我的第二台开发机器上安装ADAM服务器时,连接字符串是什么样的?
答案 0 :(得分:3)
经过大量阅读和尝试后,我发现了以下内容:
不,您无法测试身份验证(即测试多个用户帐户以及代码上的结果),而无需向您的域添加虚假用户或为测试目的设置特定域。
但是,为了在代码中测试角色系统,您可以对MVC / API控制器进行单元测试。为此,您必须模拟请求上下文。
MVC:http://darioquintana.com.ar/blogging/2009/05/23/aspnet-mvc-testing-a-custom-authorize-filters/
API:http://aspnetwebstack.codeplex.com/discussions/358709/
两者的关键是你不能模仿整个校长(特别是Guid),但是你可以伪造对你可以在测试中使用的角色请求的响应。
在您的应用程序中使用角色,您可以将您所在的组中的一个分配给您要测试的角色,然后离开。作为角色系统的基础:
为这种测试设置本地LDAP服务器是没用的,而且工作量太大。