如何将用户活动的日志添加到 XAF 中的表中
本文关键字:XAF 添加 日志 用户 活动 | 更新日期: 2023-09-27 18:31:51
我有一个Log
表,我需要添加用户的activities
(尤其是与安全相关的)。
例如,如果用户更改了密码或登录到软件,那么我将"password changed"
或"user logged in"
字符串添加到表中。我想我应该覆盖默认password change action
,如此处所述
我是否正确,相应的操作是什么?它是由 XAF 提供的吗?我在文档中找不到任何内容。实际上,我也不知道如何将其添加到表中,直到现在我只将一些文本记录到txt
文件中。
就像上面@shamp00所说的那样,审计跟踪模块已经做得很好。启用后的审计跟踪模块会记录所有内容,因此您所要做的就是编写代码以仅显示所需的信息:-)
现在不幸的是,密码属性是只读的,因此无法访问,但您可以监视所有其他用户更改,包括密码重置,因为这会触发"下次登录时更改密码"属性的更改。
您需要做的就是
- 将审核跟踪模块添加到项目中。
- 将此代码段添加到要审核的特定对象
private XPCollection<AuditDataItemPersistent> userAuditTrail; public XPCollection<AuditDataItemPersistent> UserAuditTrail { get { if(userAuditTrail == null) { userAuditTrail = AuditedObjectWeakReference.GetAuditTrail(Session, user); } return userAuditTrail; } }
为了让它为我工作,我创建了一个名为 employee 的对象,该对象继承自DevExpress.ExpressApp.Security.Strategy.SecuritySystemUser
,因为我们希望扩展 SecuritySystemUser,不仅要添加完整的员工详细信息(名字、姓氏和地址详细信息),还要添加审核。现在,由于密码属性是只读的,因此我们无法审核对其所做的更改。由于您使用的是Devexpress Universal,因此您拥有源代码,因此您可以更改不喜欢的位并重新编译它们以满足您的需求。考虑将下面的代码片段添加到"更改我的密码操作"中。
AuditDataItemcustomDataItem = new AuditDataItem(myAuditedObject, 零 "CustomOldValue", "CustomNewValue", AuditOperationType.CustomData); AuditTrailService.Instance.AddCustomAuditData(mySession, 自定义数据项);AuditTrailService.Instance.SaveAuditData(mySession);
然后,对于时间戳,您可以为要记录的每个事件(如登录)扩展控制器,并使用上面的代码片段将时间添加到审核日志中。
我希望这对你有所帮助。不过,我会继续研究它。
这就是审计跟踪模块的作用。
如果需要将自定义数据添加到审核跟踪,请参阅名为"将自定义数据添加到审核日志"的部分。