快速业务通道

ASP.NET 2.0中的健康监测系统(Health Monitoring)(3) - 触发自定义事件

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-19

原文地址:http://aspnet.4guysfromrolla.com/articles/031407-1.aspx

介绍

在之前的文章中(译者注:ASP.NET 2.0中的健康监测系统(Health Monitoring)(1) - 基本应用,ASP.NET 2.0中的健康监测系统(Health Monitoring)(2) - 通过Email发送监测信息),我们已经知道了ASP.NET 2.0的健康监测系统是用于监测ASP.NET应用程序的运行状况的,它可以记录事件信息到你指定的日志源中。这个健康监测系统中包括大量的预定义事件,在ASP.NET程序运行期间,会自动地触发相关的事件。 但是,有的时候我们需要通过自己的逻辑来触发某一事件, 此时,我们就应该为健康监测系统创建我们自己的自定义事件。

在本文中,我们将会看到如何创建一个自定义事件,以及如何触发这个自定义事件。 当健康监测系统的预定义事件被触发的时候,健康监测系统会通过Web.config中的配置信息来决定将详细的事件信息记录到哪个日志源中。 本文中,我们会创建一个自定义事件,使得当一个被锁定的用户试图登录的时候,将其信息记录到相关的日志源中。 继续往下看,你会知道得更多!

需要了解的知识点

ASP.NET 2.0的Membership可以让开发人员方便地开发出用户管理的功能。 更多的关于ASP.NET 2.0用户管理的相关信息,可以参考Examining ASP.NET 2.0''s Membership, Roles, and Profile。 出于安全目的,如果某个用户在一段时间内登录失败的次数超出了某个值的话,Membership就会锁定该用户。 一旦某一用户被锁定了,那么他将无法再登录站点,直到管理员解锁这个帐户。参考上面推荐的那个系列文章的第4部分,其中介绍了如何记录被锁定的用户的登录情况到数据库中,以便管理员查看,管理员可以通过一个界面来集中管理被锁定的用户,同时也提供了解锁用户的功能。

我们可以加强一下上面的功能,使其可以通过健康监测系统来记录被锁定的试图登录的用户。 好了,让我们来做一些必要的配置吧,以便当相关的事件发生的时候,系统会自动地发邮件给管理员。 (参考通过Email发送监测信息(中文在这里),通过该文你可以了解更多的健康监测系统中通过邮件记录事件的相关信息。)

虽然默认情况下,ASP.NET运行时可以记录不同的验证级别的事件,但是如果用户登录失败的原因是因为该用户已被锁定的话,那么它将无法记录。 另外,它也不是健康监测系统的内置事件。 所以,请跟着我来完成如下3个任务:

1、创建一个自定义事件类(当被锁定的用户试图登录的时候将会触发它)

2、当被锁定的用户试图登录的时候触发我们第一步创建的那个事件

3、更新Web.config中与健康监测系统相关的配置,以使其可以记录自定义事件到一个或更多的数据源。

本文接下来的部分将会详细地讲解如何完成这3个步骤。 如果你还没有看过Examining ASP.NET 2.0''s Membership, Roles, and Profile - Part 4,那么请马上去看一看,因为接下来会用到很多那篇文中的代码。

创建一个健康监测系统的自定义事件

健康监测系统内的所有事件都继承自WebBaseEvent类。 在System.Web.Management命名空间中,你会发现WebBaseEvent类有很多不同的子类,不同的子类中有不同类型的事件。 下图可以让你快速地了解各种事件的层次关系。 它显示了健康监测系统的一些(不是所有)内置事件。 其中暗绿色的是与安全审核相关的事件,我们将在本文中一起探讨这些事件。

ASP.NET 2.0中的健康监测系统(Health Monitoring)(3) - 触发自定义事件

因为我们想要创建一个当被锁定的用户试图登录的时候触发的事件,所以我们自然而然地想到了WebAuthenticationFailureAuditEvent类。 通过继承一个已存在的类来创建我们的健康监测系统的自定义事件是一个非常好的办法。 在这里我们就可以创建一个继承自WebAuthenticationFailureAuditEvent的类,并用它来记录详细信息。 我们先给这个类起个名,就叫作AttemptingT

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号