1
是否有一種簡單的方法可以用IPrincipal替換當前User對象(控制器內部的那個對象)具有另一個用戶的屬性?我正在考慮用戶Windows身份驗證和AD組的環境,因此需要複製所有AD屬性。在ASP.NET MVC中模擬用戶進行測試
「硬」的方法是做LDAP查詢並實現IPrincipal接口,但我想避免這種情況。
是否有一種簡單的方法可以用IPrincipal替換當前User對象(控制器內部的那個對象)具有另一個用戶的屬性?我正在考慮用戶Windows身份驗證和AD組的環境,因此需要複製所有AD屬性。在ASP.NET MVC中模擬用戶進行測試
「硬」的方法是做LDAP查詢並實現IPrincipal接口,但我想避免這種情況。
我解決了這個通過添加這樣的屬性,以我的基本控制器:
new public IPrincipal User
{ //we override User for impersonation
get {
if (/*check for impersonation*/)
{
return /*impersonated*/;
}
else
{
return base.User;
}
}
}
創建一個接口/類來包裝對當前用戶對象的訪問。您的自定義服務可以返回用戶對象或任何您想要的內容,並且在測試中很容易進行模擬。
我懷疑你是過comlicating它。你能否顯示你正在測試的控制器動作? – 2010-11-23 21:03:57
我不是想測試一個控制器操作。當在我的本地機器上運行應用程序時,能夠模擬特定用戶的想法,並查看一切工作原理。 – 2010-11-23 21:13:11