2016-02-21 50 views
0

我目前正在研究一個南希網站,它有兩個部分。一個用於字體最終用戶,另一個用於管理員。這兩種類型的用戶都有不同的登錄頁面,/login只允許最終用戶登錄,admin/login只允許管理員登錄。針對不同模塊的不同IUserMapper實現 - NancyFx

我想要的是IUserMapper接口的不同實現。我希望在調用/login時將其解析爲UserMapper,並在調用/admin/login路由時解析爲AdminMapperUserMapperAdminMapper類給出如下:對窗體身份驗證

public class UserMapper: IUserMapper{ 
    //IUserMapper implementation 
} 
public class AdminMapper: IUserMapper{ 
//IUserMapper implementation 
} 

我有下面的代碼在RequestStartup方法

var formsAuthConfiguration = new FormsAuthenticationConfiguration() 
       { 
        RedirectUrl = "~/login", 
        CryptographyConfiguration = CustomCryptographyConfiguration.Default, 
        UserMapper = container.Resolve<IUserMapper>() 
       }; 

       FormsAuthentication.Enable(pipelines, formsAuthConfiguration); 

我怎麼能告訴南希映射IUserMapperUserMapper/login被調用,以AdminMapper/admin/login被調用。

回答

0

這必須由您自己完成。南希沒有機械師能夠知道如何自動處理

當您連接表單身份驗證並分配UserMapper屬性FormsAuthenticationConfiguration時,則無法從容器中解析它。

您將不得不基於請求的路由創建適當的IUserMapper實例,每個請求。您可以從傳入RequestStartup方法的NancyContext對象中獲取請求的路由。