我正在开发一个使用AD进行Windows身份验证以及员工和组织信息的Intranet应用程序。该应用程序位于c#,.NET MVC4中。我使用IIS Express和SQL Server Express进行开发。雇员由委托人的Guid引用,例如,记录的创建者将被引用为AuthorId,然后包含一个表示来自AD的Guid的字符串。不同的用户基于他们的组成员看到不同的视图,例如,具有相同url的管理员可以在编辑器视图中编辑类别,但用户只能在显示视图中看到类别。
问题:-在不需要访问域AD的情况下,如何测试查询AD的代码?-如何最好地假定不同的用户访问而不更改域AD?
我在考虑用ADAM做测试。但是我的问题是:-我应该如何配置使用这个本地ADAM服务器进行身份验证?- ADAM安装是否可以在我的第二台开发计算机上,或者应该是本地的?-当我在我的第二台开发计算机上安装该ADAM服务器时,连接字符串是什么样子的?
发布于 2013-04-12 22:22:38
经过大量的阅读和尝试,我发现了以下几点:
不,您不能测试身份验证(即测试多个用户帐户和代码上的结果),除非将假用户添加到您的域或为测试目的设置特定的域。
但是,为了测试代码中的角色系统,您可以对MVC/API控制器进行单元测试。为此,您必须模拟请求上下文。
MVC:http://darioquintana.com.ar/blogging/2009/05/23/aspnet-mvc-testing-a-custom-authorize-filters/
接口名: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服务器是无用的,而且工作量太大。
https://stackoverflow.com/questions/15412490
复制相似问题