2

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

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

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

4

1 回答 1

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 服务器是无用的,而且工作量太大。

于 2013-04-12T14:22:37.943 回答