2013-03-14 59 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服務器是無用的,太多的工作。