旋风

Communication comes from our hears and heads! my msn:youpeizun@hotmail.com


导航

Enterprise Library 3.0 Logging Application Block 扩展

Posted on 2007-08-09 14:32  xuanfeng  阅读(2386)  评论(9编辑  收藏  举报
 存在问题场景:

       企业库日志应用程序模块(3.0或以前版本)都存在一个问题就是,发邮件功能里,
不能设置SMTP服务器用户名和密码来进行认证,只能用默认的本机当时用户去进
行认证
,根本不符合实际的需求。如下图所示,新建一个邮件跟踪监听器时,并不
可以填写用户的认证信息。

源代码分析:

       企业库日志应用程序块在实现邮件的发送是在
Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.EmailMessage类中完成的,实现
发邮件功能的关键源代码如下:

public virtual void SendMessage(MailMessage message)

         
{

                       SmtpClient smtpClient 
= new SmtpClient(configurationData.SmtpServer, configurationData.SmtpPort);

              smtpClient.Send(message);

        }



从中可以看出,发邮件时它并没有指定认证信息。

需求:

对企业库日志应用程序块邮件发送功能进行扩展,使它支持本地和用户认证两种认
证模式,并能在配置控制台中直接配置相关信息。

结果:

   如图所示:扩展后就有可以在配置控置台中直接配置相关认证信息了,如果认证
设为
False就是本地认证了。

 实现发邮件功能的关键代码:

 

key code

需要修改代码文件:

代码文件

类名

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

 四个修改后代码文件下载

下载四个文件代码相关文件即可!