2013-03-14 52 views
2

我正在开发一个使用AD进行Windows身份验证以及员工和组织信息的Intranet应用程序。该应用程序在.NET MVC4中。我开发使用IIS Express和SQL Server Express。员工由校长的Guid引用,例如,记录的创建者将被引用为AuthorId,然后其中包含表示来自AD的Guid的字符串。不同的用户根据组成员身份查看不同的视图,例如使用相同的url管理员可以在编辑器视图中编辑类别,但用户只能在显示视图中看到该类别。开发和测试网站和AD

问题: - 如果不必要地访问域AD,我该如何测试查询AD的代码? - 如何在不更改域AD的情况下最好地假设不同的用户访问?

我正在考虑使用ADAM进行测试。但后来我的问题是: - 我应该如何配置和使用本地ADAM服务器进行身份验证? - ADAM安装可以在我的第二台开发机器上,还是应该是本地的? - 在我的第二台开发机器上安装ADAM服务器时,连接字符串的外观如何?

回答

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),但你可以伪造的响应对角色的要求,你然后可以在您的测试中使用。

在您的应用程序中使用角色时,您可以将您所在的组中的一个分配给要测试的角色,然后关闭。对于角色系统的基础:

http://geekswithblogs.net/tyarmer/archive/2010/02/25/strongly-typed-roles-in-mvc-with-authorize-attribute.aspx

为这种测试设置本地LDAP服务器是无用的,太多的工作。