我正在實體框架5中工作。我們使用Microsoft Active Directory進行用戶認證。我們正在使用適當的n層體系結構,因此大多數情況下,業務層對用戶界面沒有任何意識。如何檢測當前用戶的審覈日誌?
現在我們需要保持一個完整的審計線索:每次在數據庫上發生任何寫入操作時,我們都必須將其保存到我們的審計日誌以及誰進行了更改。
捕捉寫入應該比較簡單;我將在我的數據上下文中覆蓋SaveChanges()
,並使用ObjectStateManager
查找所有插入,更新和刪除操作。真正的問題將是檢測當前用戶是誰,因爲認證是在表示層完成的,業務層DLL將託管在IIS上,爲任何數量的客戶端進程提供服務。
是否有某種方法可以檢測客戶端在業務層中使用的身份驗證憑證?我絕對不希望將用戶ID傳遞給API中的每個接口!
(FWIW,我還使用EntityFramework.Extended,它理應有一些本地的審計日誌功能,但documentation是遠遠不夠的。成功地利用這個任何人只要有任何的經驗嗎?它是否能有助於?)
表示層是業務層的可信子系統嗎? – TGlatzer
我認爲這是一個**內聯網**應用程序? –
@ Grumbler85我真的不明白這個問題。它將如何被信任?表示層具有對BL的引用,而不是其他方式。 –