Enterprise Library 3.0 Logging Application Block 扩展
Posted on 2007-08-09 14:32 xuanfeng 阅读(2387) 评论(9) 编辑 收藏 举报 企业库日志应用程序模块(3.0或以前版本)都存在一个问题就是,发邮件功能里,
不能设置SMTP服务器用户名和密码来进行认证,只能用默认的本机当时用户去进
行认证,根本不符合实际的需求。如下图所示,新建一个邮件跟踪监听器时,并不
可以填写用户的认证信息。
源代码分析:
企业库日志应用程序块在实现邮件的发送是在
Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.EmailMessage类中完成的,实现
发邮件功能的关键源代码如下:
{
SmtpClient smtpClient = new SmtpClient(configurationData.SmtpServer, configurationData.SmtpPort);
smtpClient.Send(message);
}
从中可以看出,发邮件时它并没有指定认证信息。
需求:
对企业库日志应用程序块邮件发送功能进行扩展,使它支持本地和用户认证两种认
证模式,并能在配置控制台中直接配置相关信息。
结果:
如图所示:扩展后就有可以在配置控置台中直接配置相关认证信息了,如果认证
设为False就是本地认证了。
实现发邮件功能的关键代码:
需要修改代码文件:
代码文件 |
类名 |
EmailMessage.cs |
Microsoft.Practices.EnterpriseLibrary.Logging.Configuration. EmailMessage |
EmailTraceListenerData.cs |
Microsoft.Practices.EnterpriseLibrary.Logging.Configuration. EmailTraceListenerData |
EmailTraceListener.cs |
Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners. EmailTraceListener |
EmailTraceListenerNode.cs |
Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.Design. TraceListeners. EmailTraceListenerNode |
四个修改后代码文件下载
下载四个文件代码相关文件即可!