![]() |
1
1
因为你用的是
有关用户登录时如何更新这些字段的详细信息,请参阅 SqlMembershipProvider.ValidateUser 方法:
关于一般的日志记录,不管怎样,您都可能希望使用日志记录框架,我建议您 NLog . |
![]() |
2
1
您描述的需求似乎非常适合应用程序/域事件。 当用户登录时,应该引发应用程序范围的事件,以表示事件(用户登录)已发生。“event”是一条消息,我总是把它们写成没有行为的数据包(除了完全公共属性之外什么都没有),并且我通常让它们包含处理程序所需的所有上下文(数据)(通常只是一个记录ID)。 另外,为在数据库中记录相关信息的事件编写一个处理程序。处理程序应该是一个单独负责的类。如果响应事件需要执行更多操作,请将它们作为单独的处理程序实现。 然后,在应用程序启动的某个地方,必须连接处理程序以侦听应用程序/域事件。 因此,将需要一些基础设施代码来支持这种模式,但它应该是简单而简短的代码,而DI/IoC容器通常可以极大地帮助这些代码。如果您使用google域事件,还可以使用许多实现示例。 我发现这种应用程序/域事件模式 例外地 很强大。采用这种模式极大地改进了我的代码。我发现不用修改就可以更容易地扩展系统的行为 任何 在现有的代码中,这种行为通过在您的示例中有一个明确的位置来封装,该代码记录用户在其中的代码以及记录关于应用程序登录的统计信息的代码。 最后,我不会使用Log4Net来实现这一点。如果您实现了这个事件,处理程序应该非常简单和直接,但是如果您试图通过shoe horn Log4Net来执行持久性,那么。。。看起来你至少会在某种程度上与你的工具(Log4Net)抗争——而这完全可以通过不使用它来避免。 |
![]() |
Vedant · 如何解决python啦啦队长问题?[已关闭] 3 年前 |
![]() |
cobby · 在战略模式中使用工厂模式? 3 年前 |
![]() |
Nobody · Java中带while循环的三角形模式 3 年前 |
![]() |
Eduard Stefanescu · 如何在层之间传输异常? 7 年前 |
![]() |
D. Schreier Talha Noyon · 对于目录中的每个类 7 年前 |
![]() |
Tanvi Jaywant · 如何重载类 7 年前 |