我正在使用LLBL Gen Pro v2.6并尝试创建一种审核对数据库所做更改的方法。现在,我知道LLBL Gen使用AuditorBase和依赖注入构建了审计。我的问题是;我不仅需要跟踪LLBL Gen公开的可审计的内容,还需要跟踪进行更改的用户。从我所看到的,没有一种收集这些信息的内置方式。有没有人使用LLBL Gen的内置审计并确定了这样做的方法?
Wayne E. Pfeffer
答案 0 :(得分:1)
我使用过LLBLGens审核课程。确定用户确实是您必须处理的事情。 LLBLGen实际上为您执行此操作的变量太多。您的用户如何处理?这是winforms还是asp.net应用程序?
最佳解决方案是将UserId存储在会话变量或静态变量中,具体取决于哪个更适合您的应用程序。在您的Auditing类的实现中,您可以从其存储位置拉出UserId。
另一个可能的解决方案是覆盖Entity Class或Data Adapter类,并将UserId传递给您的save方法。但是,这将是更多的工作。
答案 1 :(得分:1)
在我的WinForms应用程序中,我通过创建自定义IPrincipal来完成此操作,并在用户登录应用程序时将其粘贴在System.Threading.Thread.CurrentPrincipal上。然后,我可以轻松地从我的LLBLGen审计课程中获取它。
答案 2 :(得分:0)
我们还要实现对数据库更改的审计,并将user_id添加到审计日志中也存在同样的问题。我可以看到你可以做拉动方法,例如从网络会话中获取user_id(我们正在构建一个Web应用程序),但这会完全搞乱应用程序的分层,就像我看到的那样!?
即。如果DAL从表示层(网络会话)中提取数据信息,我将无法在其他环境中使用DAL?
致以最诚挚的问候,
- 托马斯