0

比方說,我有一個表X與列:Name,Role。主頁面顯示Name's列表X。以某些特定用戶身份(指定了ASP.NET角色)登錄時,我想僅顯示Name's的列表,其中Role與當前登錄的用戶匹配。這是可能的,例如裝飾EF功能?我想避免在調用GetList的應用程序中的所有地方編碼爲if's限制使用asp.net授權從數據庫訪問一些數據

我使用EF 6分貝第一,ASP.NET MVC 6

編輯

GetList方法是GenericDataRepository的一部分:

public virtual IList<T> GetList(Expression<Func<T, bool>> where, params Expression<Func<T, object>>[] navigationProperties) 
    { 
     IQueryable<T> dbQuery = this.Context.Set<T>(); 

     foreach (var navigationProperty in navigationProperties) 
     { 
      dbQuery = dbQuery.Include(navigationProperty); 
     } 

     var list = dbQuery.AsNoTracking().Where(@where).ToList(); 

     return list; 
    } 
+0

是否有可能,但不能通過裝飾方法。通過過濾EF層中的角色是可能的。 –

+0

@ChetanRanpariya通過「過濾」你的意思是改變所有'GetList'方法? –

+0

GetList方法是哪個類的一部分?誰稱這種方法?你可以分享GetList方法的代碼嗎? –

回答

0

你想要一個business layerGetList變成GetListForUserRole並且帶有角色參數。然後,您的應用程序的多個部分可以調用此方法併爲其提供角色。

+0

這是我想要避免的,因爲在實際場景中,我有大約10個用戶特定數據表和超過100個(估計)位置,我將這些方法稱爲GetList。 –