如何在c#中记录每个用户的操作
本文关键字:用户 操作 记录 | 更新日期: 2023-09-27 18:12:43
我试图建立一个日志,其中包含在我的应用程序中已完成的每个动作,如添加或删除数据等。我谷歌了一下,明白我必须使用
System.Security.Principal.WindowsIdentity.currentuser()
这将告诉我谁是当前用户,但我如何记录这个特定用户所做的操作?
提前感谢:)
为了记录当前用户执行的应用程序操作,您需要使用log4net
之类的库或自己手动记录它们。
为了使它更容易为你,使你的代码更短,你应该考虑设计模式,如Interceptor
(种类的Decorator Factory
,可以很容易地实现使用Castle Winsdor library
或post-sharp
,虽然后者是更意想不到的),以减少你需要手动记录的次数(通过拦截类做你的动作,使它登录每一个所需的方法调用Attributing
的记录方法)。
这取决于您想在哪里记录这些操作以及这些操作是什么。您可以编写一个SQL查询,将数据保存在一个表中,您可以使用像log4net这样的库。但请记住,如果您想记录每个页面/类的操作,则需要在每个类中。
每当您的系统执行由用户发起的某些操作时,将一些内容写入日志文件(或数据库中的日志表,或您喜欢的任何存储机制),其中包含一些标识用户的信息,例如用户名(从System.Windows.Principal.WindowsIdentity.GetCurrent().Name
获得)。
我也遇到过这个问题。我计划为每个自定义操作添加一个单独的日志记录方法。当用户删除一个对象时,会激活一个方法来保存必要的信息。
虽然我可能使它比必要的更困难。