ASP.NET 2.0中的健康监测系统(Health Monitoring)(3)

原文地址: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,那么请马上去看一看,因为接下来会用到很多那篇文中的代码。

时间: 2024-10-30 01:36:16

ASP.NET 2.0中的健康监测系统(Health Monitoring)(3)的相关文章

ASP.NET 2.0中的健康监测系统(Health Monitoring)(2)

原文地址:http://aspnet.4guysfromrolla.com/articles/031407-1.aspx 介绍 ASP.NET 2.0的健康监测系统是用来监测运营环境中ASP.NET程序的运行状况的. 它的工作就是记录事件信息到指定的日志源. .NET 2.0框架中包含有多种可以被健康监测系统使用的内置事件,这些事件可以监测到程序的开始和停止.未处理异常.验证失败的信息等等. .NET框架中也提供了记录这些事件的方法,你可以把这些事件信息记录到Windows事件日志.微软的SQL

ASP.NET 2.0中的健康监测系统(Health Monitoring)(1)

原文地址:http://aspnet.4guysfromrolla.com/articles/031407-1.aspx 作者:Scott Mitchell 介绍 在程序部署之前,要经历许多软件工程中定义的重要阶段,如需求分析.设计.编码和测试等. 但是,并不是说一旦程序部署并使用之后就脱离软件工程的各个阶段了. 不管一个web程序有多好的设计.多好的编码.多好的测试,它总是会有掉链子的时候. 如数据库服务器掉线,web站点比你凭经验预期的有更大的负载,或者你的web服务器本身的硬件出现问题等.

在ASP.NET 2.0中建立站点导航层次(1)

站点导航提供程序--ASP.NET 2.0中的站点导航提供程序暴露了应用程序中的页面的导航信息,它允许你单独地定义站点的结构,而不用考虑页面的实际物理布局.默认的站点导航提供程序是基于XML的,但是你也可以通过编写自定义的提供程序,从任何后端位置暴露这些信息. 站点导航API--站点导航API用于在应用程序的代码中访问站点导航信息,它摘录了导航信息存储的细节.你可以使用API来编程访问应用程序的导航节点. 导航控件--导航控件为页面之间的导航提供了通用的UI,例如树视图.菜单和breadcrum

抢先试用ASP.NET 2.0中的新型安全控件

asp.net|安全|控件 一. 引言 与ASP.NET 2.0一同上市的有几个新的安全控件-它们位于工具的Login选项卡中(见图1)-这些控件大大简化了Web开发人员的工作.通过使用这些新的安全控件,现在你可以执行例如用户登录.注册.口令改变等的任务:而且,为此做出的努力仅是拖放相应的控件到你的Web表单上去.在本文中,我将向你展示怎样使用这些新控件来实现用户认证. 首先,让我们探索一下LoginView.LoginStatus和LoginName三个控件的使用.首先,让我们使用Visual

asp.net 2.0中的ValidationGroup

asp.net|asp.net 在asp.net 1.1中,对于验证类控件,在使用时,遇到有的不需要验证的控件时,是十分麻烦的,就是说不可能有选择验证某些控件,而在asp.net 2.0中,新增加了validationgroup属性,可以指定验证某些控件,例子如下: <html> <body> <form runat="server"> <asp:textbox id="TextBox1" runat="serve

ASP.NET 2.0中实现跨页面提交

asp.net|页面 在ASP.NET 1.X 版本中,页面都是提交到自己本身,并不能方便的指定需要提交的目的页面.例如FirstPage.aspx中的button只能提交到FirstPage.aspx,而不能提交到SecondPage.aspx.很多时候,ASP.NET 1.X这样工作方式使我们的开发方式受到不少限制.熟悉ASP/JSP/PHP的朋友大概很不习惯,因为以前经常使用的提交方式突然无法使用,虽然也有解决这个问题的方法(演示Webcast),可是过程太烦琐,不甚方便.令我们高兴的是,

ASP.NET 2.0 中配合 Master Page 使用的优化 CSS 模型

asp.net|css|优化 ASP.NET 2.0 中增加了内建的 MasterPage 的支持,这对我们来说是一个很大的便利.然而经过一段时间的使用,我发现 MasterPage 并不是那么完美:嵌套的 MasterPage 不能支持设计时界面,以及下面要提到的Content Page 中增加 CSS 的问题. 通常,在没有 2.0 之前,我们在页面里要增加一个 CSS 引用的语法如下: <link rel="stylesheet" href="css/test.c

理解并扩展 ASP.NET 2.0 中的站点导航系统

asp.net|导航|站点 摘要:ASP.NET 2.0 站点导航系统构建于一个功能强大.灵活的体系结构之上,设计这样的体系结构是为了使其具有可扩展性.本文探究站点提供程序的体系结构并提供一个示例提供程序,该提供程序将文件系统公开为站点导航的数据源,从而替代了标准的 Web.sitemap XML 文件. 简介 大多数 web 站点采用可视化导航的某种形式来帮助用户轻松地浏览站点,以及查找他们所需的信息和 Web 页.尽管不同站点之间的感观效果千差万别,但是通常会使用相同的基本元素 - 以导航栏

asp.net 2.0中tablecontrol搭配masterpage的小bug

asp.net|erp 在asp.net 2.0中,如果在一个masterpage页面中,使用服务端的table控件的话,如下所示,会在设置视图时,没了其中的contentplaceholder,     <asp:Table ID="tbl" runat="server">            <asp:TableRow>                <asp:TableCell>                    Th