我正在構建OWIN自託管Web API 2應用程序,並且使用通用存儲庫模式並使用Autofac進行依賴項注入。OWIN Self-Host Web API 2:如何使用Autofac將當前用戶注入通用存儲庫
我的通用存儲庫類;
public abstract class Repository<T> : IRepository<T> where T : BaseEntity
{
private DbContext context_;
private Identity _currentUser; //This needs to be resolved
public Repository(DbContext context)
{
context_ = context;
}
public T Update(T item)
{
//item.ModifiedBy = _currentUser.UserName; // The value needs to be assigned
context_.SaveChanges();
return item;
}
}
問題:
我需要訪問當前用戶和我需要更新ModifiedBy領域的數據庫中。
我試圖避免構造函數注入,因爲通過傳遞DbContext作爲構造函數參數在項目中的幾個地方創建存儲庫對象。
是否有其他方法可以在不修改現有代碼的情況下做到這一點? 任何人都可以幫助我實現我的要求。
注:
備選地我可以重寫的SaveChanges中的DbContext類()方法。 但我再次無法訪問當前那裏。
你能解釋這一點嗎?我應該在哪裏從控制器調用它?或者我可以在ActionFilter中設置?這種方法是否安全? – Rahul
@Rahul你打算如何驗證和授權你的用戶? –
是的,我正在使用JWT令牌認證,現在我需要訪問Repo中不知道當前請求的用戶信息。 – Rahul