如何在C#中记录每个用户的操作?

时间:2015-09-15 09:03:11

标签: c# logging

我正在尝试构建一个日志,其中包含在我的应用程序中完成的每个操作,例如添加或删除数据等等。我用Google搜索并了解我必须使用

System.Security.Principal.WindowsIdentity.currentuser()

这将告诉我当前用户是谁,但我如何记录此特定用户所做的操作?

提前致谢:)

4 个答案:

答案 0 :(得分:1)

这取决于您要记录这些操作的位置以及操作的内容。您可以编写一个SQL查询来保存表中的数据,您可以使用像log4net这样的库。但请记住,如果你想记录每页/每班的动作,这需要在每个班级。

答案 1 :(得分:1)

每当您的系统执行用户启动的某些操作时,请将某些内容写入日志文件(或数据库中的日志表或您喜欢的任何存储机制),其中包含标识用户的一些信息,例如用户名(你从System.Windows.Principal.WindowsIdentity.GetCurrent().Name获得的。

答案 2 :(得分:1)

我也遇到过这个问题。我打算为每个自定义操作添加单独的日志记录方法。例如:当用户删除对象时,会激活方法以保存必要的信息。

虽然我可能会让它变得更加困难。

答案 3 :(得分:1)

为了记录当前用户所做的应用操作,您需要使用log4net之类的库或自己手动记录它们。

为了让您更轻松并缩短代码,您应该考虑Interceptor等设计模式(Decorator Factory可以使用Castle Winsdor library或{{轻松实现1}}虽然后者更意外)减少了手动记录所需的次数(通过拦截执行操作的类,并使{{1}的所有方法调用登录记录的方法)。